将列附加到 Spark 中的行
Append Column to Row in Spark
我有一个 DataFrame
,我想通过一个新列来扩展它。 here 解释了从 Row
s 创建新的 DateFrame
。
我目前的策略是使用来自 Row
s 的 RowFactory 构建新的 Row
s,这些 Row
s 被传递到由 DataFrame.javaRDD().map(...)
调用的我的地图,但我担心这可能会造成不必要的费用。
所以我想知道是否可以通过附加新字段来扩展现有的 Row
,而不是创建新的 Row
。 Row
接口似乎不允许这样做。
正如@Sachin Janani 在评论中提到的,您不能修改行(它是不可变的),但是您可以 使用 [=] 将列附加到 DataFrame
12=]-函数。例如,下面的代码将添加一个列,其中包含列 "text":
中找到的字符串的长度
val stringLength = udf[Int, String](s => s.length)
val df2 = df1.withColumn("text_length", stringLength(df1("text")))
希望对您有所帮助。
我有一个 DataFrame
,我想通过一个新列来扩展它。 here 解释了从 Row
s 创建新的 DateFrame
。
我目前的策略是使用来自 Row
s 的 RowFactory 构建新的 Row
s,这些 Row
s 被传递到由 DataFrame.javaRDD().map(...)
调用的我的地图,但我担心这可能会造成不必要的费用。
所以我想知道是否可以通过附加新字段来扩展现有的 Row
,而不是创建新的 Row
。 Row
接口似乎不允许这样做。
正如@Sachin Janani 在评论中提到的,您不能修改行(它是不可变的),但是您可以 使用 [=] 将列附加到 DataFrame
12=]-函数。例如,下面的代码将添加一个列,其中包含列 "text":
val stringLength = udf[Int, String](s => s.length)
val df2 = df1.withColumn("text_length", stringLength(df1("text")))
希望对您有所帮助。