如何在Spark中对数据帧的列执行二进制"or"操作



让我解释一下场景:

我正在创建一个掩码值。

val Date = 20170501
val day = Date.toString.substring(6, 8)
val mask = pow(2, day.toInt -1)

然后接下来我创建dataframe它使用withColumn创建额外的列,即

val t1 = df.withColumn("C1", when($"a1" > 0 , $"C1" | mask.toInt).otherwise($"C1"))

但是当我对Dataframe列执行|操作时,它给我的错误是"value | is not a member of org.apache.spark.sql.ColumnName"。

早期帮助将不胜感激。

提前谢谢。

您可以使用由Column实现的 bitwiseOR

val t1 = df.withColumn("C1", when($"a1" > 0 , $"C1".bitwiseOR(mask.toInt)).otherwise($"C1"))

最新更新