如何在Azure机器学习管道中使用U-SQL脚本生成的结果上运行Python脚本?
我想处理存储在Azure Data Lake存储(Gen 1)中的大型表,首先运行一个U-SQL脚本,然后运行一个Python脚本,最后输出结果 从概念上讲,这相当简单:如何在Azure机器学习管道中使用U-SQL脚本生成的结果上运行Python脚本?,python,azure-storage,azure-data-lake,u-sql,azure-machine-learning-service,Python,Azure Storage,Azure Data Lake,U Sql,Azure Machine Learning Service,我想处理存储在Azure Data Lake存储(Gen 1)中的大型表,首先运行一个U-SQL脚本,然后运行一个Python脚本,最后输出结果 从概念上讲,这相当简单: 运行.usql脚本从大型初始_表生成中间数据(两个表,intermediate_1和intermediate_2) 在中间数据上运行Python脚本以生成最终结果final Azure机器学习管道应该采取哪些步骤来实现这一点 我认为以下计划会奏效: 使用类似的AdlaStep在adla_compute上运行.usql查询 in
初始_表生成中间数据(两个表,intermediate_1
和intermediate_2
)
final
AdlaStep
在adla_compute
上运行.usql查询
int_1 = PipelineData("intermediate_1", datastore=adls_datastore)
int_2 = PipelineData("intermediate_2", datastore=adls_datastore)
adla_step = AdlaStep(script_name='script.usql',
source_directory=sample_folder,
inputs=[initial_table],
outputs=[intermediate_1, intermediate_2],
compute_target=adla_compute)
aml\u compute
like
python_step = PythonScriptStep(script_name="process.py",
arguments=["--input1", intermediate_1, "--input2", intermediate_2, "--output", final],
inputs=[intermediate_1, intermediate_2],
outputs=[final],
compute_target=aml_compute,
source_directory=source_directory)
步骤运行(process.py)状态:失败 无法装载数据存储mydatastore,因为它未指定 存储帐户密钥 我真的不理解抱怨“mydatastore”的错误,它的名称与我运行U-SQL查询所针对的
adls\U数据存储
Azure Data Lake数据存储引用相关联
有人能闻到我在这里做错了什么吗?
我是否应该在
PythonScriptStep
之前将中间数据(intermediate\u 1
和intermediate\u 2
)移动到存储帐户,例如使用DataTransferStep
?ADLS不支持装载。因此,您是对的,您必须首先使用DataTransferStep将数据移动到blob。AML compute不支持data Lake store。此表列出了不同的计算及其对不同数据存储的支持级别:
您可以使用DataTransferStep
将数据从ADL复制到blob,然后将该blob用作PythonScriptStep
的输入。样本笔记本:
#注册blob数据存储,链接笔记本中的示例
#blob\u数据存储=数据存储。注册azure\u blob\u容器(。。。
int_1_blob=DataReference(
数据存储=blob_数据存储,
数据\u引用\u name=“int\u 1\u blob”,
数据存储上的路径=“int\u 1”)
将\u int\u 1\u复制到\u blob=DataTransferStep(
name='copy int_1 to blob',
源数据参考=int\u 1,
目的地数据参考=int\u 1\u blob,
计算\目标=数据\工厂\计算)
int_2_blob=DataReference(
数据存储=blob_数据存储,
数据\u引用\u name=“int\u 2\u blob”,
数据存储上的路径=“int\u 2”)
将\u int\u 2\u复制到\u blob=DataTransferStep(
name='copy int_2 to blob',
源数据参考=整数2,
目的地数据参考=int\u 2\u blob,
计算\目标=数据\工厂\计算)
#更新PythonScriptStep以使用blob数据引用
python_step=PythonScriptStep(。。。
参数=[“--input1”,int_1_blob,“--input2”,int_2_blob,“--output”,final],
输入=[int_1_blob,int_2_blob],
...)