【问题标题】:Append Column to Row in Spark在 Spark 中将列附加到行
【发布时间】:2016-01-13 09:57:05
【问题描述】:

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

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

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

code of Row

【问题讨论】:

  • 我认为你不能修改,因为它是不可变的

标签: apache-spark spark-dataframe


【解决方案1】:

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

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

希望这会有所帮助。

【讨论】:

  • 谢谢,这与我想要的非常接近,但我的 udf 会非常复杂(计算另一列文本中出现的某些单词)。我一定会记住withColumn。此post 与此有关。
猜你喜欢
  • 1970-01-01
  • 2015-06-11
  • 2019-12-18
  • 1970-01-01
  • 2016-05-20
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多