colossal-sandwich-50049
07/20/2022, 10:06 PMMLModel
entity using the java (or python) emitter?careful-pilot-86309
07/21/2022, 9:12 AMcolossal-sandwich-50049
07/21/2022, 2:30 PMimport com.linkedin.common.FabricType;
import com.linkedin.common.urn.DataPlatformUrn;
import com.linkedin.common.urn.MLModelUrn;
import com.linkedin.metadata.key.MLModelKey;
import com.linkedin.ml.metadata.MLModelProperties;
import datahub.event.MetadataChangeProposalWrapper;
import datahub.client.rest.RestEmitter;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutionException;
public class MyModelAppTwo {
public static void main(String[] args) throws IOException, ExecutionException, InterruptedException {
MLModelUrn mlModelUrn = new MLModelUrn(new DataPlatformUrn("science"), "testModel", FabricType.PROD);
MLModelKey mlModelKey = new MLModelKey()
.setName("testModel")
.setOrigin(FabricType.DEV)
.setPlatform(new DataPlatformUrn("science"));
MetadataChangeProposalWrapper mcpwOne = MetadataChangeProposalWrapper.builder()
.entityType("mlModel")
.entityUrn(mlModelUrn)
.upsert()
.aspect(mlModelKey)
.aspectName("mlModelKey")
.build();
MLModelProperties mlModelProperties = new MLModelProperties()
.setDescription("some desc");
MetadataChangeProposalWrapper mcpwTwo = MetadataChangeProposalWrapper.builder()
.entityType("mlModel")
.entityUrn(mlModelUrn)
.upsert()
.aspect(mlModelProperties)
.aspectName("mlModelProperties")
.build();
/** Emit **/
RestEmitter emitter = RestEmitter.create(b -> b.server("<http://localhost:8080>"));
List<MetadataChangeProposalWrapper> mcpws = Arrays.asList(
mcpwOne,
mcpwTwo
);
for (MetadataChangeProposalWrapper mcpw : mcpws) {
System.out.println(MessageFormat.format("Starting metadata emission for {0} ...", mcpw));
emitter.emit(mcpw, null).get();
}
System.exit(0);
}
}
colossal-sandwich-50049
07/21/2022, 2:38 PMcolossal-sandwich-50049
07/21/2022, 4:13 PMbig-carpet-38439
08/08/2022, 5:45 PMbig-carpet-38439
08/08/2022, 5:45 PMbig-carpet-38439
08/08/2022, 9:25 PMbrowse_path = BrowsePathsClass(
paths=["/powerbi/{}".format(self.__config.workspace_id)]
)
return MetadataChangeProposalWrapper(
entityType="dataset",
changeType="UPSERT",
entityUrn="urn:li:dataset:(urn:li:dataPlatform:custom,MyFileName,PROD),
aspectName="browsePaths",
aspect=browse_path,
)
big-carpet-38439
08/08/2022, 9:28 PMcareful-pilot-86309
08/09/2022, 8:32 AMBrowsePaths browse_path = new BrowsePaths().setPaths(new StringArray("/mlModels/test"));
MetadataChangeProposalWrapper mcpw = MetadataChangeProposalWrapper.builder()
.entityType("mlModel")
.entityUrn(mlModelUrn)
.upsert()
.aspect(browse_path)
.aspectName("browsePaths")
.build();
Please note that browse path must start with "/mlModels/"colossal-sandwich-50049
08/10/2022, 6:32 PMbig-carpet-38439
08/15/2022, 3:42 PMbig-carpet-38439
08/15/2022, 3:42 PM