scala - 对 Dataframe 的特定列执行按位运算
问题描述
我有一个数据框,其中有一列包含3468936084
(长)之类的值。执行按位运算后我想要的结果是:
((3468936084) >> 16 & 255) = 195
我试过这个:
val df2 = df1.withColumn("second", col("aNumber")>> 16 & 255)
但它不起作用。
如何在 scala 中获得预期的结果?
解决方案
val df = Seq("3468936084").toDF("A")
val bitOpearationUDF=(value:String) => value.toLong >> 16 & 255
val bitOperation = udf(bitOpearationUDF)
df.withColumn("NewColum", bitOperation(df("A")))
试试上面的代码。
推荐阅读
- c# - 为什么我的下拉列表显示“System.Data.DataRowView”而不是实际值?
- splunk - 仪表板表:获取子查询计数
- r - 如何对年度数据进行排序?
- node.js - 如何使用 get 方法从 Dialog Flow 调用 API?
- python - Python:如何检查列表中的项目是否包含必须满足两个条件的 elif 语句中的字符串?
- ansys - Ansys Fluent 设置中的重力加速度
- kubernetes - 我可以在 preStop 命令中使用 env
- python - 如何在 python 中复制 PowerPoint 文件?
- c - 在构建中包含资产(C 中的 SDL-2 游戏项目)
- javascript - 如何调用soap webservice react-native