首页 > 解决方案 > 如何在火花中将数据集 [行] 保存为文本文件?

问题描述

我想在特定位置将 Dataset[Row] 保存为具有特定名称的文本文件。有谁能够帮我?

我试过这个,但这会产生一个文件夹(LOCAL_FOLDER_TEMP/filename),里面有一个镶木地板文件:Dataset.write.save(LOCAL_FOLDER_TEMP+filename)

谢谢

标签: scalaapache-spark

解决方案


您不能使用 spark api 将数据集保存到特定的文件名,有多种解决方法可以做到这一点。

  1. 正如 Vladislav 提供的那样,收集您的数据集,然后使用 scala/java/python api 将其写入您的文件系统。
  2. 应用 repartition/coalesce(1),写入数据集,然后更改文件名。

两者都不是很推荐,因为在大型数据集中它可能导致 OOM 或者只是失去了 spark 的并行能力。

您获得 parquet 文件的第二个问题,它是 spark 的默认格式,您应该使用:

  df.write.format("text").save("/path/to/save")

推荐阅读