Pyspark spark中的覆盖行为

Pyspark spark中的覆盖行为,pyspark,parquet,Pyspark,Parquet,我定期上传拼花地板文件上的数据,我使用该文件进行数据分析,我希望确保我的拼花地板文件中的数据不重复。我用于执行此操作的命令是: df.write.parquet('my_directory/',mode='overwrite') 这是否确保我的所有非重复数据不会在某个时候被意外删除 Cheers覆盖,顾名思义,它将整个数据重写到您指定的路径中。 从某种意义上讲,如果指定路径中有可用的旧文件,则通过删除这些文件,将df中可用的数据写入路径。因此,您可以将此视为删除< /代码>和 Load 场景,

我定期上传拼花地板文件上的数据,我使用该文件进行数据分析,我希望确保我的拼花地板文件中的数据不重复。我用于执行此操作的命令是:

df.write.parquet('my_directory/',mode='overwrite')
这是否确保我的所有非重复数据不会在某个时候被意外删除


Cheers

覆盖,顾名思义,它将整个数据重写到您指定的路径中。 从某种意义上讲,如果指定路径中有可用的旧文件,则通过删除这些文件,将
df
中可用的数据写入路径。因此,您可以将此视为<代码>删除< /代码>和 Load 场景,在其中读取数据源中的所有记录,让Oracle进行转换,删除实木地板,并在数据文件中写入新内容。 Dataframe.write支持将内容写入目标的模式列表

mode –

specifies the behavior of the save operation when data already exists.

append: Append contents of this DataFrame to existing data.

overwrite: Overwrite existing data.

ignore: Silently ignore this operation if data already exists.

error or errorifexists (default case): Throw an exception if data already
exists.
如果您打算向拼花地板添加新数据,则必须使用
append
,但如果您处理的是不断变化的数据,这将带来新的重复挑战

这是否确保不会删除我的所有非重复数据 在某一点上偶然地

mode='overwrite'
仅确保如果数据已经存在于
目标目录中
,则现有数据将被
删除
,并写入新数据(
类似于截断并加载到RDBMS表中
)。 如果要确保没有记录级重复项,最简单的方法是:

df1 = df.dropDuplicates()
df1.write.parquet('my_directory/', mode='overwrite')