首页 > 解决方案 > 对 Dataframe 的特定列执行按位运算

问题描述

我有一个数据框,其中有一列包含3468936084(长)之类的值。执行按位运算后我想要的结果是:

((3468936084) >> 16 & 255) = 195

我试过这个:

val df2 = df1.withColumn("second", col("aNumber")>> 16 & 255)

但它不起作用。

如何在 scala 中获得预期的结果?

标签: scaladataframeapache-sparkapache-spark-sql

解决方案


val df = Seq("3468936084").toDF("A")
val bitOpearationUDF=(value:String) => value.toLong >> 16 & 255
val bitOperation = udf(bitOpearationUDF)
df.withColumn("NewColum", bitOperation(df("A")))

试试上面的代码。


推荐阅读