Я хочу обработать большие таблицы, хранящиеся в хранилище озера данных 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, имя которого связано со ссылкой на хранилище данных Azure Data Lake adls_datastore
, для которой я выполняю запросы U-SQL.
Может ли кто-нибудь почувствовать запах, если я здесь что-то действительно не так делаю?
Следует ли переместить промежуточные данные (intermediate_1
и intermediate_2
) в учетную запись хранения , например, с DataTransferStep
, перед PythonScriptStep
?