【问题标题】:spark dataframe write using spark-csv failing使用 spark-csv 写入火花数据帧失败
【发布时间】:2016-03-30 12:42:37
【问题描述】:

我正在尝试使用 pysparkn 和 spark-csv 使用以下代码将 spark 数据帧写入 s3

df1.filter( df1['y'] == 2)\
            .withColumnRenamed("x",'a')\
            .select("a","b","c")\
            .write\
            .format('com.databricks.spark.csv')\
            .options(header="true")\
            .options(codec="org.apache.hadoop.io.compress.BZip2Codec")\
            .save('s3://bucket/abc/output")

但是,我收到“输出目录已存在”的错误, 我确定在作业开始之前输出目录不存在,我尝试使用不同的输出目录名称运行,但写入仍然失败。

如果我在作业失败后查看 s3 存储桶,我发现 spark 写入的部分文件很少,但是当它尝试写入更多时它失败了,脚本在本地运行良好,我在 aws 集群上使用 10 个 spark 执行器.有人知道这段代码有什么问题吗?

【问题讨论】:

    标签: apache-spark pyspark spark-csv


    【解决方案1】:

    尝试使用下面的代码应该可以解决问题。在内部它使用 Hadoop api 来检查文件的存在。请检查日志到执行程序。您可能会发现一些有用的东西。

    df1.filter( df1['y'] == 2)\
                .withColumnRenamed("x",'a')
                .select("a","b","c")
                .write
                .mode(Overwrite)
                .format('com.databricks.spark.csv')
                .options(header="true")
                .options(codec="org.apache.hadoop.io.compress.BZip2Codec")
                .save('s3://bucket/abc/output")
    

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 2021-10-15
      • 1970-01-01
      • 2020-03-05
      • 2018-11-27
      • 1970-01-01
      • 2020-08-11
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多