我有一个功能
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解决方案。
答案 0 :(得分:1)
不确定问题是否足够清楚,但这可以帮助您:
您随时可以在case class
上使用Scala
(https://docs.scala-lang.org/es/tutorials/tour/case-classes.html.html)将DF
转换为Dataset
,例如:df.as[YourCaseClass]
。
此后,如果需要强制获取List
,则可以在该.collectAsList()
上使用Dataset
。
该列表中项目的数据类型将是您为初始case class
定义的cast
。