Azure / Azure/MachineLearningNotebooks

How to create Pipeline parameters for data stored in DataLakeGen2 and use in Azure Synapse/Data Factory?

Open
#1,784 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
4.4k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

I am trying to create pipeline parameters for variable data access to a Synapse DataLakeGen2 datastore and invoke the pipeline with the 'Machine Learning Execute Pipeline' activity in Azure Synapse . According to the microsoft docs, datasets are the recommended way for interaction with the AzureDataLakeGen2Datastore class. I have verified this by trying to use DataPathComputeBinding with either the 'mount' or the 'download' mode, neither of which are supported for Gen2 datastores. So then I tried the DatasetConsumptionConfig class to pass the data to the compute target, which requires a dataset as a pipeline parameter. Unfortunately, the 'Machine Learning Execute Pipeline activity' only supports string or DataPath variables, so I could not find a way to pass a Dataset:
![image](https://user-images.githubusercontent.com/75938629/179972106-7ecb7493-3015-42c5-a27f-724f1b023ff0.png)
I then tried to use the DataPath as parameter input and convert it to a dataset, but the PipelineParameter class does not seem to provide any methods to retrieve the underlying DataPath:

```python
datapath = DataPath(datastore=datastore, path_on_datastore=path)
data_path_pipeline_param = (PipelineParameter(name="input_data", default_value=datapath))

#does not work
dataset_parquet = Dataset.Tabular.from_parquet_files(data_path_pipeline_param)
ds_consumption = DatasetConsumptionConfig("input", dataset_parquet)

```
Is there a recommended way to do this?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.