将列附加到 Spark 中的行

Append Column to Row in Spark

我有一个 DataFrame,我想通过一个新列来扩展它。 here 解释了从 Rows 创建新的 DateFrame

我目前的策略是使用来自 Rows 的 RowFactory 构建新的 Rows,这些 Rows 被传递到由 DataFrame.javaRDD().map(...) 调用的我的地图,但我担心这可能会造成不必要的费用。

所以我想知道是否可以通过附加新字段来扩展现有的 Row,而不是创建新的 RowRow 接口似乎不允许这样做。

code of Row

正如@Sachin Janani 在评论中提到的,您不能修改行(它是不可变的),但是您可以 使用 [=] 将列附加到 DataFrame 12=]-函数。例如,下面的代码将添加一个列,其中包含列 "text":

中找到的字符串的长度
val stringLength = udf[Int, String](s => s.length)
val df2 = df1.withColumn("text_length", stringLength(df1("text")))

希望对您有所帮助。