I would like run SparkJarProcessor within Sagemaker Pipeline. After I create an instance of SparkJarProcessor, when I just run the processor, I can specify the jar and the class you I want to execute with the submit_app and submit_class parameters to the run method. e.g.,
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
)
If I want to run it as a step in the pipeline, what arguments can I give to ProcessingStep? According to this documentation, you can call get_run_args on the processor to "get the normalized inputs, outputs and arguments needed when using a SparkJarProcessor in a ProcessingStep", but when I run it like this,
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
)
My output looks like this:
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" is not part of the output. So, assuming code is to specify the jar, what's the normalized version of submit_class?