如何将数据帧或RDD转换为元组列表?

时间:2019-11-21 15:36:32

标签: scala dataframe apache-spark tuples

我有一个功能

def f(tuples: Seq[Product]) : Unit = if (tuples.size>0) {
   // etc using tuples.foreach( x=>  { ...  x.productIterator.foreach(...) })
}

,并需要通过数据框f( myDF.rdd.? )对其进行调用。 如何通过数据框调用函数?
(或如何强制转换?如何collectAsTuples?)

PS:需要一个“通用类型转换”,例如rdd.map(genericTuple),而不是解决方案专用的元组。


不赞成投票的人的注意事项:应该是Phyton solutions,但没有 Scala解决方案

1 个答案:

答案 0 :(得分:1)

不确定问题是否足够清楚,但这可以帮助您:

您随时可以在case class上使用Scalahttps://docs.scala-lang.org/es/tutorials/tour/case-classes.html.html)将DF转换为Dataset,例如:df.as[YourCaseClass]

此后,如果需要强制获取List,则可以在该.collectAsList()上使用Dataset

该列表中项目的数据类型将是您为初始case class定义的cast