【问题标题】:overwriting a spark output using pyspark使用 pyspark 覆盖火花输出
【发布时间】:2016-06-22 00:40:13
【问题描述】:

我正在尝试使用 PySpark 中的以下选项覆盖 Spark 数据帧,但我没有成功

spark_df.write.format('com.databricks.spark.csv').option("header", "true",mode='overwrite').save(self.output_file_path)

mode=overwrite 命令不成功

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    试试:

    spark_df.write.format('com.databricks.spark.csv') \
      .mode('overwrite').option("header", "true").save(self.output_file_path)
    

    【讨论】:

    • 它适用于更新hdfs上的json文件doc.write.format('json').mode("append").option("header","true").save(/path/to/hdfs_file)
    【解决方案2】:

    Spark 1.4 及更高版本具有用于数据帧编写器的内置 csv 函数

    https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrameWriter

    例如

    spark_df.write.csv(path=self.output_file_path, header="true", mode="overwrite", sep="\t")
    

    什么是语法糖

    spark_df.write.format("csv").mode("overwrite").options(header="true",sep="\t").save(path=self.output_file_path)
    

    我认为令人困惑的是找到文档中每种格式的确切可用选项。

    这些写相关的方法属于DataFrameWriter类: https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrameWriter

    csv 方法有这些选项可用,在使用 format("csv") 时也可用: https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrameWriter.csv

    您需要提供参数的方式还取决于该方法是采用单个 (key, value) 元组还是关键字 args。虽然使用 (*args, **kwargs),但它与 Python 的一般工作方式相当标准,但它与 Scala 语法不同。

    例如 option(key, value) 方法采用一个选项作为像 option(header,"true") 这样的元组,.options(**options) 方法采用一堆关键字分配,例如.options(header="true",sep="\t")

    编辑 2021

    文档进行了巨大的改头换面,从新用户从需求的角度发现功能的角度来看这可能是件好事,但确实需要一些调整。

    DataframeReader 和 DataframeWriter 现在是 API 文档中输入/输出的一部分:https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql.html#input-and-output

    DataframeWriter.csv 可调用现在在这里https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.DataFrameWriter.csv.html#pyspark.sql.DataFrameWriter.csv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2019-12-14
      • 1970-01-01
      • 2020-02-25
      • 2021-06-30
      • 1970-01-01
      相关资源
      最近更新 更多