【问题标题】:how to print spark rdd struct data and save to local file如何打印spark rdd struct数据并保存到本地文件
【发布时间】:2018-06-07 13:04:46
【问题描述】:

rdd数据为key,value格式,value为struct数据 如何打印前 100 个数据,并将其保存为本地文件。

可能是用户rdd.take(10).saveAsTextFile,但是会报错。

【问题讨论】:

  • 错误是什么? rdd 的数据类型是什么?我们可以看看一些示例行
  • res1: org.apache.spark.rdd.RDD[(Long, com.UserProfiles.UserTags)] = MapPartitionsRDD[1] at map at UserProfiles.scala:52
  • 而UserTags如struct usertags{ int a,int b,inc};
  • take 返回一个数组,saveAsTextFile 是 rdd 的函数。 RDD[String] 的 rdd 应该与 saveAsTextFile 一起使用。因此,请确保在继续之前牢记这两点
  • 如果我想从 rdd 获取一些数据,我该如何保存到本地文件

标签: scala rdd


【解决方案1】:

如果你在rdd 上使用take 作为

rdd.take(10)

它将返回一个Array 而不是rdd,并且saveAsTextFile 不适用于Array。

您可以做的是使用zipWithIndex进行过滤并将过滤后的另存为

rdd.zipWithIndex().filter(_._2 < 100).map(_._1).saveAsTextFile("path to the output file")

这里使用_._2 &lt; 100,就像你说要保存前100条数据

【讨论】:

    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多