我正在尝试将过滤后的数据帧保存回相同的源文件。
我编写了以下代码,将目录中每个文件的内容转换为单独的Dataframe,对其进行过滤,然后将其保存回相同的文件
rdd = sparkSession.sparkContext.wholeTextFiles("/content/sample_data/test_data")
# collect the RDD to a list
list_elements = rdd.collect()
for element in list_elements:
path, data = element
df = spark.read.json(spark.sparkContext.parallelize([data]))
df = df.filter('d != 721')
df.write.save(path, format="json", mode="overwrite")我原以为它会用更新后的数据覆盖文件,但它创建了一个带有文件名的文件夹,并创建了以下结构和零件文件:

如何将每个更新的数据帧保存回相同的源文件(.txt)?提前谢谢。
发布于 2020-06-02 13:32:58
要将其保存到1个文件中,请在.save()之前使用.coalesce(1)或.repartition(1)选项,这将导致相同的类似文件夹的结构,但其中将有1个json文件。
要在保存后使用“普通”名称保存它,您需要在其中剪切1个json文件,粘贴并重命名为所需的名称。您可以查看csv文件here的代码。
https://stackoverflow.com/questions/62145026
复制相似问题