如何在 AWS EMR 中一起添加 2 个(pyspark、scala)步骤?
Posted
技术标签:
【中文标题】如何在 AWS EMR 中一起添加 2 个(pyspark、scala)步骤?【英文标题】:How can I add 2 (pyspark,scala) steps together in AWS EMR? 【发布时间】:2021-05-18 18:09:54 【问题描述】:我想在 AWS EMR 集群中一起添加两个步骤。 第 1 步是基于 pyspark 的代码,第 2 步是基于 Scala-spark 的代码。
我如何做到这一点?
【问题讨论】:
【参考方案1】:只要您的步骤逻辑正确(输入/输出符合您的逻辑),运行一个步骤并不依赖于上一步使用的语言。
例如,您的第一步(我假设集群正在运行)是使用 python,这可能类似于从 mysql/S3 获取数据并执行 ETC 并保存到 S3(此处通知 /home/hadoop/spark/myscript.py
)
aws emr add-steps --cluster-id j-xxxxxxx
--steps Name=Spark,Jar=s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,
Args=[/home/hadoop/spark/bin/spark-submit,
--deploy-mode,client,/home/hadoop/spark/myscript.py],
ActionOnFailure=CONTINUE
你的下一步可以是任何东西,包括 scala。例如(此处通知/usr/lib/spark/examples/jars/spark-examples.jar
)
aws emr add-steps --cluster-id j-2AXXXXXXGAPLF
--steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,
Args=[
--class,org.apache.spark.examples.SparkPi,
/usr/lib/spark/examples/jars/spark-examples.jar,10]
现在考虑以下提交两个步骤的命令,(注意 TYPE 之前的黑步)
注意:步骤名称为CustomJAR
,CustomJAR2
aws emr add-steps
--cluster-id j-XXXXXXXX --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR2,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
您现在只需将 python 和 scala 步骤放在适当的位置。
【讨论】:
以上是关于如何在 AWS EMR 中一起添加 2 个(pyspark、scala)步骤?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 pyspark aws emr 中向现有数据框添加多列?
如何使用 Step Function 在 Amazon EMR 中添加步骤
AWS EMR 4.0 - 如何添加自定义 JAR 步骤来运行 shell 命令