Apache Spark,向现有 DataFrame 添加“CASE WHEN ... ELSE ...”计算列

2024-01-08

我正在尝试使用 Scala API 将“CASE WHEN ... ELSE ...”计算列添加到现有的 DataFrame 中。 起始数据框:

color
Red
Green
Blue

所需的数据帧(SQL 语法:CASE WHEN color == Green THEN 1 ELSE 0 END AS bool):

color bool
Red   0
Green 1
Blue  0

我应该如何实现这个逻辑?


在即将发布的 SPARK 1.4.0 版本中(应该会在接下来的几天内发布)。您可以使用when/otherwise语法:

// Create the dataframe
val df = Seq("Red", "Green", "Blue").map(Tuple1.apply).toDF("color")

// Use when/otherwise syntax
val df1 = df.withColumn("Green_Ind", when($"color" === "Green", 1).otherwise(0))

如果您使用的是 SPARK 1.3.0,您可以选择使用 UDF:

// Define the UDF
val isGreen = udf((color: String) => {
  if (color == "Green") 1
  else 0
})
val df2 = df.withColumn("Green_Ind", isGreen($"color"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Spark,向现有 DataFrame 添加“CASE WHEN ... ELSE ...”计算列 的相关文章

随机推荐