pyspark.sql.DataFrameWriter.mode

DataFrameWriter. mode ( saveMode : Optional [ str ] ) → pyspark.sql.readwriter.DataFrameWriter [source]

指定当数据或表已存在时的行为。

选项包括:

  • append : 将此 DataFrame 的内容附加到现有数据中。

  • overwrite : 覆盖现有数据。

  • error errorifexists : 如果数据已存在,则抛出异常。

  • ignore : 如果数据已存在,则静默地忽略此操作。

在版本 1.4.0 中的新功能。

在版本 3.4.0 中更改: 支持 Spark Connect。

示例

在写入现有路径时引发错误。

>>> import tempfile
>>> with tempfile.TemporaryDirectory() as d:
...     spark.createDataFrame(
...         [{"age": 80, "name": "Xinrong Meng"}]
...     ).write.mode("error").format("parquet").save(d) 
Traceback (most recent call last):
    ...
...AnalysisException: ...

使用各种选项写入Parquet文件,并读取它。

>>> with tempfile.TemporaryDirectory() as d:
...     # Overwrite the path with a new Parquet file
...     spark.createDataFrame(
...         [{"age": 100, "name": "Hyukjin Kwon"}]
...     ).write.mode("overwrite").format("parquet").save(d)
...
...     # Append another DataFrame into the Parquet file
...     spark.createDataFrame(
...         [{"age": 120, "name": "Takuya Ueshin"}]
...     ).write.mode("append").format("parquet").save(d)
...
...     # Append another DataFrame into the Parquet file
...     spark.createDataFrame(
...         [{"age": 140, "name": "Haejoon Lee"}]
...     ).write.mode("ignore").format("parquet").save(d)
...
...     # Read the Parquet file as a DataFrame.
...     spark.read.parquet(d).show()
+---+-------------+
|age|         name|
+---+-------------+
|120|Takuya Ueshin|
|100| Hyukjin Kwon|
+---+-------------+