当前位置: 首页 > 知识库问答 >
问题:

如何将数据集[行]保存为火花中的文本文件?[重复]

凌嘉志
2023-03-14

我想将数据集[行]保存为文本文件,并在特定位置使用特定名称。有人能帮我吗?

我已经试过了,但这会产生一个文件夹(LOCAL\u folder\u TEMP/filename),其中包含一个拼花文件:Dataset。写保存(LOCAL\u FOLDER\u TEMP filename)

谢谢

共有3个答案

禹德水
2023-03-14

Spark总是创建多个文件-每个分区一个文件。如果您想要一个文件-您需要执行收集(),然后以通常的方式将其写入文件。

诸葛卜霸
2023-03-14

请使用

RDD.saveAsTextFile()

它将数据集的元素作为文本文件(或一组文本文件)写入本地文件系统、HDFS或任何其他Hadoop支持的文件系统中的给定目录中。Spark将调用每个元素上的toString,将其转换为文件中的一行文本。

参考链接:rdd编程指南

姬高扬
2023-03-14

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

  1. 正如Vladislav所提供的,收集数据集,然后使用scala /java/pythonapi将其写入文件系统
  2. 应用重新分区/合并(1),写入数据集,然后更改文件名。

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

第二个问题是您正在获取拼花地板文件,因为默认的spark格式,您应该使用:

  df.write.format("text").save("/path/to/save")
 类似资料:
  • 我是Spark的新手。我尝试在本地模式(windows)下使用spark java将csv文件保存为parquet。我得到了这个错误。 原因:org.apache.spark.Spark异常:写入行时任务失败 我引用了其他线程并禁用了spark推测 set("spark.speculation "," false ") 我还是会出错。我在csv中只使用了两个专栏进行测试。 输入: 我的代码: 请帮

  • 我有如下数据帧: 如何使用字段分隔符将上述数据框另存为文本文件格式|保存我的输出文件后,应该是部分-00000,部分-00001 e.t.c

  • 当我启动这个代码时,你通常认为它会在文本文件中输入一个100,但我不知道为什么它会像字符一样输入一个“d”。有人知道如何修复吗?一个方法应该输入一个数据,一个应该输入那个数据,一个应该保存那个数据。

  • 我在spark中有一个数据集,只有一列,这列是一个Map[String,Any]。我想逐行映射数据集,然后逐键映射映射映射列,计算每个键的值,并使用新数据生成与前一个相同类型的新数据集。 例如: 我想在每个值的末尾加上“”,结果将是一个数据类型的数据集,如下所示: 谢谢Nir

  • 如果我们以RDD的形式处理存储在Spark本地磁盘中的一个大CSV文件(大小为1 GB),并将其重新划分到4个不同的分区,执行器会并行处理每个分区吗?如果我们不将RDD重新划分为4个不同的分区,执行器会怎么做?如果不使用HDFS,我们是否会失去分布式计算和并行性的能力?

  • 问题内容: 我正在保存一个.txt和.doc文件,其中包含来自JTable的数据。在保存的那一刻,它像在表中一样放置文本,但是由于数据长度不同,它无法容纳。因此,我试图按如下所示安排日期: 第1列名称:第1行第1列数据 第2列名称:第1行第2列数据 第3列名称:第1行第3列数据 第4列名称:第1行第4列数据 第1列名称:第2行第1列数据 第2列名称:第2行第2列数据 第3列名称:第2行第3列数据