这里是AWS新手,我正在尝试在EMR集群上运行pyspark作业,但似乎无法弄清楚为什么我的输出不会保存到指定的s3存储桶中。
from pyspark import SparkContext
if __name__ == "__main__":
sc = SparkContext(appName="appName")
rdd = sc.parallelize([1,2,3,4,5])
rdd.saveAsTextFile("s3a://ouput-bucket/output")
sc.stop()
我使用脚本提交工作
#!bin/bash
aws s3 cp $2 s3://bucket-with-script/script.py
aws emr add-steps --cluster-id $1 \
--steps Type=spark,Name=appName,\
Args=[--deploy-mode,cluster,--master,yarn,\
--verbose,\
--conf,spark.yarn.submit.waitAppCompletion=False,\
--num-executors,5,\
--executor-cores,5,\
--executor-memory,2g,\
s3a://bucket-with-script/script.py,\]\
,ActionOnFailure=CONTINUE
我在做错什么吗?
stderr: https://paste.ee/p/OwSOj
编辑:我不知道这是否会改变任何东西,但是我正在通过ec2实例来完成所有这些工作。
答案 0 :(得分:0)
尝试将级别降低一级,例如s3a://bucket/dest/out.csv
该根目录总是存在一些“异常”,原因是它很特殊:即使您删除了它,它也始终存在,并且类似。