Pyspark 查找spark作业输出文件的位置
我正在AWS上的EMR集群中测试pyspark作业。目标是使用Lambda函数启动spark作业,但目前我正在手动运行spark作业。因此,我使用SSH连接到主节点,然后运行spark作业,如下所示:Pyspark 查找spark作业输出文件的位置,pyspark,amazon-emr,Pyspark,Amazon Emr,我正在AWS上的EMR集群中测试pyspark作业。目标是使用Lambda函数启动spark作业,但目前我正在手动运行spark作业。因此,我使用SSH连接到主节点,然后运行spark作业,如下所示: spark-submit /home/hadoop/testspark.py mybucket mybucket—传递给spark作业的参数 保存RDD的行是 rddFiltered.repartition(1).saveAsTextFile("/home/hadoop/output.txt")
spark-submit /home/hadoop/testspark.py mybucket
mybucket—传递给spark作业的参数
保存RDD的行是
rddFiltered.repartition(1).saveAsTextFile("/home/hadoop/output.txt")
spark作业似乎正在运行,但它将输出文件放在某个位置-输出目录中hdfs://ip-xxx-xx-xx-xx.ec2.internal:8020/home/hadoop/output.txt.
谢谢根据EMR文档: 如果不指定前缀,默认情况下spark将向HDFS写入数据。您可以使用以下命令检查EMR HDFS:
hadoop fs -ls /home/hadoop/
您还可以使用S3DistCp从HDFS传输到S3:
很遗憾,您无法使用saveAsTextFile覆盖现有文件:
正如我看到的,您将文件重新分区为一个分区,因此您也可以将其写入本地文件系统:
rddFiltered.repartition(1).collect().saveAsTextFile("file:///home/hadoop/output.txt")
注意,如果您使用的是分布式集群,您必须首先collect()
返回到驱动程序