【发布时间】:2017-11-14 03:13:35
【问题描述】:
我需要使用 Scala API 在 Spark 中编写一个场景。 我将一个用户定义的函数传递给一个数据帧,该数据帧一个接一个地处理数据帧的每一行并返回元组(行,行)。如何将 RDD ( Row, Row) 更改为 Dataframe (Row)?请参阅下面的代码示例 -
**Calling map function-**
val df_temp = df_outPut.map { x => AddUDF.add(x,date1,date2)}
**UDF definition.**
def add(x: Row,dates: String*): (Row,Row) = {
......................
........................
var result1,result2:Row = Row()
..........
return (result1,result2)
现在 df_temp 是一个 RDD(Row1, Row2)。我的要求是通过将元组元素分解为 RDD 或 Dataframe 的 1 条记录,使其成为 RDD 或 Dataframe RDD(行)。感谢您的帮助。
【问题讨论】:
-
您希望如何组合两个 Row 元素?是否应该将第二个列附加到第一个列?两行中可能存在共同的列吗?没有这些信息,问题就不清楚了。
标签: scala apache-spark apache-spark-sql