Pyspark AWS EMR中的火花步进失败,exitCode 13

Pyspark AWS EMR中的火花步进失败,exitCode 13,pyspark,amazon-emr,Pyspark,Amazon Emr,我正在尝试EMR,我试着运行一个非常简单的spark程序 from pyspark.sql.types import IntegerType mylist = [1, 2, 3, 4] df = spark.createDataFrame(mylist, IntegerType()).show() df.write.parquet('/path/to/save', mode='overwrite') 我通过在AWS EMR web控制台中添加一个步骤来启动应用程序我从s3选择deploy mo

我正在尝试EMR,我试着运行一个非常简单的spark程序

from pyspark.sql.types import IntegerType
mylist = [1, 2, 3, 4]
df = spark.createDataFrame(mylist, IntegerType()).show()
df.write.parquet('/path/to/save', mode='overwrite')
我通过在
AWS EMR web控制台中添加一个步骤来启动应用程序
我从
s3
选择
deploy mode cluster
中选择应用程序,并将其余部分留空

应用程序甚至无法启动,可能是因为我收到以下错误代码:
应用程序\u 156485869414\u 0002失败2次,原因是appattempt\u 156485869414\u 0002\u000002的AM容器已退出,退出代码为:13


我做错了什么?

您尝试的代码中没有定义
spark
变量。这可能是导致问题的原因,因为您没有向应用程序传递spark上下文

尝试添加:

from pyspark.sql import SparkSession
spark = SparkSession\
        .builder\
        .getOrCreate()

在使用spark.createDataFrame(…)之前,

您尝试的代码中未定义
spark
变量。这可能是导致问题的原因,因为您没有向应用程序传递spark上下文

尝试添加:

from pyspark.sql import SparkSession
spark = SparkSession\
        .builder\
        .getOrCreate()


在使用spark.createDataFrame(…)

no之前,代码只会中断。我可以在主机上启动pyspark控制台,只需使用
spark
。Amazon AWS传递一个
spark
变量当您打开EMR集群上的pyspark控制台时,spark上下文已经设置为true。当您通过一个步骤时,情况并非如此。您的EMR集群中是否有任务节点?如果不是的话,那可能是你的问题,目前我使用1个主节点和1个核心节点。但据我所知,任务节点是可选的。当我启动
pyspark
控制台或打开
Livy笔记本
时,他们会分配工作人员,但当我使用spark提交选项时则不会。抱歉,我的坏朋友没有看到核心节点也作为spark executor节点运行。我可以看看你在执行任务时得到的日志吗?不,那么代码就会崩溃。我可以在主机上启动pyspark控制台,只需使用
spark
。Amazon AWS传递一个
spark
变量当您打开EMR集群上的pyspark控制台时,spark上下文已经设置为true。当您通过一个步骤时,情况并非如此。您的EMR集群中是否有任务节点?如果不是的话,那可能是你的问题,目前我使用1个主节点和1个核心节点。但据我所知,任务节点是可选的。当我启动
pyspark
控制台或打开
Livy笔记本
时,他们会分配工作人员,但当我使用spark提交选项时则不会。抱歉,我的坏朋友没有看到核心节点也作为spark executor节点运行。我可以查看执行任务时获得的日志吗?您可以从web控制台的步骤部分查看详细日志。我想你的
df
不应该包含
.show()
,这是一个动作,结果不会是一个数据帧。thx我也注意到了这个错误并删除了它。这是一个快速复制和过去的错误:D。但遗憾的是,这并不能解决我的问题。你把大师设定为纱线了吗
spark submit--master Thread--deploy cluster--class main something.jar
像这样。当我通过EMR web UI提交作业时,我只使用“默认值”,我会尝试一下,您是如何将其作为EMR步骤的?从控制台?然后将这些选项添加为参数。您可以从web控制台的步骤部分查看详细日志。我想你的
df
不应该包含
.show()
,这是一个动作,结果不会是一个数据帧。thx我也注意到了这个错误并删除了它。这是一个快速复制和过去的错误:D。但遗憾的是,这并不能解决我的问题。你把大师设定为纱线了吗
spark submit--master Thread--deploy cluster--class main something.jar
像这样。当我通过EMR web UI提交作业时,我只使用“默认值”,我会尝试一下,您是如何将其作为EMR步骤的?从控制台?然后将这些选项添加为参数。