【问题标题】:Get values froma a Dataset<Row> into a .txt file (using Java) [duplicate]从 Dataset<Row> 获取值到 .txt 文件中(使用 Java)[重复]
【发布时间】:2019-02-28 18:29:30
【问题描述】:

我是新来的,所以我希望能帮助你,如果可能的话,我会得到帮助。

我在 Java 中使用 Spark SQL 和 ML Spark 制作了一个 Apache Spark 项目。我已经完成了这个项目,但我的输出有一些问题。

我有一个带有一些信息的Dataset&lt;Row&gt; final(final 是数据集的名称)。当我将show() 与此数据集(finals.show();)一起使用时,我会得到下一个信息:

    [2018026,1,9.93,127.66,5.16,245.8,4.426875,6.91]
    [2018026,1,9.97,127.89,5.36,244.8,4.426875,6.91]
    [2018026,1,6.76,113.54,6.42,228.8,4.426875,6.91]
    [2018026,1,6.92,114.2,6.81,224.0,4.426875,6.91]
    [2018026,1,6.86,113.98,6.65,226.0,4.426875,6.91]
    [2018026,1,6.81,113.76,6.58,227.4,4.426875,6.91]
    [2018026,1,6.97,113.49,6.58,225.8,4.426875,6.91]
    [2018026,1,6.97,114.42,6.67,221.6,4.426875,6.91]

(“,”是字段之间的分隔符)。 好吧,我正在尝试在文本文件中获取此输出,例如 projectSpark.txt 但对我来说是不可能的。如何在文本文件中获取此信息? 我应该遍历Dataset&lt;Row&gt; 还是有一些方法可以做到这一点?

非常感谢大家。

问候。

【问题讨论】:

  • 貌似是CSV格式,dataset.write.csv可以用。
  • DataSet 有一个 toDF 方法,可将其转换为通用数据帧。之后,正如其他人所说,将DataFrame 写入文件很容易,请参见此处的示例:community.hortonworks.com/questions/46772/…
  • @ÁlvaroValencia 可能是,但我从未使用过 Scala。我尝试将 Dataset 转换为 RDD,但不知道如何将数据从 rdd 获取到输出。
  • @pasha701 是的,我可以轻松转换为 CSV,但我不想转换为 CSV。感谢您的帮助。
  • @agiro 我已将其他数据集转换为 CSV 文件,但这次我不想转换为 CSV 文件。我只是想从数据集 中获取值并将这些数据放入 .txt 文件中。

标签: java apache-spark apache-spark-sql bigdata apache-spark-dataset


【解决方案1】:

在 Java 中,你可以做类似的事情:

finals.javaRDD().map(x -> x.toString()).saveAsTextFile("your/path");

它将您的数据集保存在单个文本文件中。

【讨论】:

  • 非常感谢阿尔瓦罗。这解决了我的问题。非常感谢;)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多