我想在Sagemaker管道中运行SparkJarProcessor。创建SparkJarProcessor的示例后,当我只对处理器执行run
时,我可以使用run
方法的submit_app
和submit_class
参数指定要执行的jar和类。例如,
processor.run(
submit_app="my.jar",
submit_class="program.to.run",
arguments=['--my_arg', "my_arg"],
configuration=my_config,
spark_event_logs_s3_uri=log_path
)
如果我想把它作为流水线中的一个步骤来运行,我可以给予ProcessingStep什么参数?根据这篇文档,你可以在处理器上调用get_run_args来“* 获取在一个ProcessingStep中使用一个SparkJarProcessor时所需要的规范化输入、输出和参数 *",但是当我这样运行它时,
processor.get_run_args(
submit_app="my.jar",
submit_class="program.to.run",
arguments=['--my_arg', "my_arg"],
configuration=my_config,
spark_event_logs_s3_uri=log_path
)
我的输出如下所示:
RunArgs(code='my.jar', inputs=[<sagemaker.processing.ProcessingInput object at 0x7fc53284a090>], outputs=[<sagemaker.processing.ProcessingOutput object at 0x7fc532845ed0>], arguments=['--my_arg', 'my_arg'])
“program.to.run“不是输出的一部分,那么,假设code
指定jar,那么submit_class
的规范化版本是什么?
2条答案
按热度按时间eyh26e7m1#
当在SparkJarProcessor上调用
get_run_args
或run
时,submit_class
用于设置处理器本身的属性,这就是您在get_run_args
输出中看不到它的原因。该处理器属性将在管道定义生成期间用于将ContainerEntrypoint参数设置为
CreateProcessingJob
。示例:
definition
的输出:7rfyedvj2#
对于更现代的sagemaker sdk版本,您可以直接使用
run
方法。例如,对于'2.120.0' sagemaker sdk版本: