【问题标题】:Write a DataFrame to csv file with a custom row/line delimiter/separator使用自定义行/行分隔符/分隔符将 DataFrame 写入 csv 文件
【发布时间】:2021-03-02 20:04:37
【问题描述】:

我需要生成一个分隔文件,其中每一行由'^'分隔,列由'|'分隔。

似乎没有更改 csv 输出类型的行分隔符的选项。

例如:

df.coalesce(1).write\
.format("com.databricks.spark.csv")\
.mode("overwrite")\
.option("header", "true")\
.option("sep","|")\
# no options for setting lineSep to '^' 
.save(destination_path)

【问题讨论】:

标签: apache-spark pyspark apache-spark-sql


【解决方案1】:

一种解决方案是将 DataFrame 转换为 rdd :

df.rdd.map(x=>x.mkString("^")).saveAsTextFile("OutCSV")

【讨论】:

    【解决方案2】:

    在 pyspark 版本 3+ 中有一个设置行分隔符的选项:

    df.coalesce(1).write\
    .format("com.databricks.spark.csv")\
    .mode("overwrite")\
    .option("header", "true")\
    .option("sep","|")\
    .option("lineSep","^")\
    .save(destination_path)
    

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 1970-01-01
      • 2015-05-12
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2014-08-14
      • 2014-05-28
      相关资源
      最近更新 更多