【问题标题】:How to convert case class RDD to RDD[String]?如何将案例类 RDD 转换为 RDD[String]?
【发布时间】:2021-09-27 22:02:14
【问题描述】:

我有一个模式 rdd。如果我打印那个 RDD,我会得到类似的输出 caseclass_name(col a, col b,col c) caseclass_name(col d,col e,col f) ...... ...... 我需要简单地显示为(前面没有案例类名) col a, col b, col c col d, col e, col f

我怎样才能得到这个?请帮忙

【问题讨论】:

  • RDD 的类型是什么?好像是RDD[(caseclass_name, caseclass_name)]。你能确认一下吗?
  • RDD[caseclass_name]

标签: scala class apache-spark case rdd


【解决方案1】:

最简单的解决方案是覆盖案例类中的toString 方法

case class iclass(Id1:Int,Id2:Int,SaleDate:String,Code:String) {
  override def toString(): String = {
    s"$Id1,$Id2,$SaleDate,$Code"
  }
}

如果您有一个 RDD[iclass] 并想将其转换为 RDD[String],则可以将其映射为 insureRDD1.map(_.toString)

【讨论】:

  • 在那种情况下,你不会不做map(_.toString)。相反,你会做rdd.toDF。例如spark.sparkContext.parallelize(Seq(iclass(7, 8, "2014-02-02", "AK"))).toDF
  • 非常感谢@kanielc
猜你喜欢
  • 2015-12-11
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 2018-11-26
相关资源
最近更新 更多