Я хочу обработать большие таблицы, хранящиеся в хранилище озера данных Azure (Gen 1), сначала запустить на них сценарий U-SQL, затем сценарий Python и, наконец, вывести результат.
Концептуально это довольно просто:
- Запустите сценарий .usql для генерации промежуточных данных (две таблицы,
intermediate_1
иintermediate_2
) из большогоinitial_table
- Запустите сценарий Python над промежуточными данными, чтобы получить окончательный результат
final
Каковы должны быть шаги конвейера машинного обучения Azure для этого?
Я думал, что следующий план сработает:
Запустите запрос .usql на
adla_compute
, используяAdlaStep
как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)
Выполните шаг Python на целевой вычислительной машине
aml_compute
, например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)
Однако это не удается на этапе Python с ошибкой типа
StepRun (process.py) Сводка выполнения
======================================
StepRun (process.py) Статус: сбойНевозможно подключить хранилище данных mydatastore, поскольку в нем не указан ключ учетной записи хранения.
Я действительно не понимаю ошибку, связанную с жалобой на mydatastore, имя которой связано с adls_datastore
ссылкой на хранилище данных Azure Data Lake, для которого я выполняю запросы U-SQL.
Кто-нибудь может почувствовать запах, если я здесь что-то делаю не так? Следует ли переместить промежуточные данные (intermediate_1
и intermediate_2
) в учетную запись хранения, например с DataTransferStep
, до PythonScriptStep
?