【发布时间】:2019-07-31 21:12:05
【问题描述】:
我尝试运行一个非常简单的 pyspark 脚本作为 aws emr 中的一个步骤,如下所示:
from pyspark.sql import SparkSession
sc = SparkContext()
df = sc.read.csv("s3://folder1/file.csv",header=True,inferSchema=True)
dd=df.select(df)
write_to = "s3://spark-workflow-test/"
dd.write.csv(write_to, sep = ";", header = True)
sc.stop()
它从文件夹中读取一些文件,选择一列,然后将其写入存储桶中的另一个文件。 由于某种原因,它一直失败,我不知道为什么。
此脚本在本地 spark 中运行良好,但在 emr 步骤中它一直失败并给出 exitCode=13。代码、火花配置是否有问题,或者我需要在控制台/emr 接口中做些什么? 我真的不知道在哪里寻找解决方案。
【问题讨论】:
-
错误信息是什么?你检查过执行者的日志吗?顺便说一句,你想用
dd=df.select(df)达到什么目的?所有列都已从源中读取并包含在“df”中,因此无需再次选择它们 -
Yuri,.py 文件只是一个测试脚本。它在本地工作正常,但在 emr 步骤中提交它一直失败和失败,我不知道为什么。我应该检查哪些日志? emr-console 中的步骤选项卡上的那个还是 s3 中那些凌乱的日志文件?谢谢
-
首先您应该检查步骤日志是否有任何有意义的失败原因。如果错误发生在执行程序中,那么您应该检查 s3 上的“containers/application_xxx/container_yyy”下的日志。你也可以看看'node/
/applications/hadoop-hdfs'。实际上,检查 s3 中的所有日志,直到找到有意义的错误。没有这个就很难猜出你有什么样的问题。
标签: amazon-web-services apache-spark amazon-s3 pyspark emr