jar 文件的参数不正确 - 使用 Boto3 启动 EMR 集群
Arguments for jar file incorrect - spinning up EMR cluster using Boto3
我正在使用库 Boto3 编写 Python 代码来启动 EMR 集群。在 Steps
部分,我列出了我的 jar 文件。这个 jar 文件是一个 Scala 脚本,它接受这样的参数:
-l 'some_vaue' - s 'some_value'
如何在 Steps
的 Args
值中正确输入这些参数?
这是我拥有的:
jar_file = 'file.jar'
ARG1 = 'some_value'
ARG2 = 'some_value'
steps = [
{
'Name': 'Running jar file step',
'ActionOnFailure': 'CONTINUE',
'HadoopJarStep': {
'Jar': 's3://mybucket/{0}'.format(jar_file),
'Args': [
'-l {0}'.format(ARG1), '-s {1}'.format(ARG2)
]
}
}
]
我的集群因 jar 步骤错误而终止,我收到此错误:
Error: Unknown option -l some_value -s some_value
Usage: spark-zoning [options]
-l, --id1 <value>
-s, --id2 <value>
Exception in thread "main" scala.MatchError: None (of class scala.None$)
at spark_pkg.SparkMain$.main(SparkMain.scala:208)
at spark_pkg.SparkMain.main(SparkMain.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
如何正确提供参数?
@jordanm 回答正确:
我将参数更改为如下所示:'Args': ['-l', ARG1, '-s', ARG2]
我正在使用库 Boto3 编写 Python 代码来启动 EMR 集群。在 Steps
部分,我列出了我的 jar 文件。这个 jar 文件是一个 Scala 脚本,它接受这样的参数:
-l 'some_vaue' - s 'some_value'
如何在 Steps
的 Args
值中正确输入这些参数?
这是我拥有的:
jar_file = 'file.jar'
ARG1 = 'some_value'
ARG2 = 'some_value'
steps = [
{
'Name': 'Running jar file step',
'ActionOnFailure': 'CONTINUE',
'HadoopJarStep': {
'Jar': 's3://mybucket/{0}'.format(jar_file),
'Args': [
'-l {0}'.format(ARG1), '-s {1}'.format(ARG2)
]
}
}
]
我的集群因 jar 步骤错误而终止,我收到此错误:
Error: Unknown option -l some_value -s some_value
Usage: spark-zoning [options]
-l, --id1 <value>
-s, --id2 <value>
Exception in thread "main" scala.MatchError: None (of class scala.None$)
at spark_pkg.SparkMain$.main(SparkMain.scala:208)
at spark_pkg.SparkMain.main(SparkMain.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
如何正确提供参数?
@jordanm 回答正确:
我将参数更改为如下所示:'Args': ['-l', ARG1, '-s', ARG2]