0

我有一个DataFrame我想通过新列扩展的。这里DateFrame解释了从Rows创建一个新的。

我目前的策略是Row使用 RowFactory 从Row传递到我调用的地图中的 s构造新的 s,DataFrame.javaRDD().map(...)但我担心这可能会产生不必要的成本。

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

行代码

4

1 回答 1

2

正如@Sachin Janani 在评论中提到的那样,您不能修改 Row (它是不可变的),但您可以DataFrame使用-function将列附加到 a withColumn。例如,下面的代码将添加一个列,其中包含“text”列中的字符串长度:

val stringLength = udf[Int, String](s => s.length)
val df2 = df1.withColumn("text_length", stringLength(df1("text")))

希望这可以帮助。

于 2016-01-13T11:45:48.827 回答