我已经写了以下代码,这是工作良好。但是我想连接udf,这样代码就可以压缩成几行。请建议我怎么做。下面是我写的代码。
val myUdf1 = udf((Number: Long) => ((Number) >> 24) & 255)
val myUdf2 = udf((Number: Long) => ((Number) >> 16) & 255)
val myUdf3 = udf((Number: Long) => ((Number) >> 8) & 255)
val myUdf4 = udf((Number: Long) => (Number) & 255)
val df=Data.withColumn("bitwise 1", myUdf1(Data("Ip")))
.withColumn("bitwise 2", myUdf2(Data("Ip")))
.withColumn("bitwise 3", myUdf3(Data("Ip")))
.withColumn("bitwise 4", myUdf4(Data("Ip")))
val FinalDF = df.withColumn("FinalIp",concat(col("bitwise 1"),lit("."),col("bitwise 2"),lit("."),col("bitwise 3"),lit("."),col("bitwise 4")))
.drop("bitwise 1").drop("bitwise 2").drop("bitwise 3").drop("bitwise 4")
2条答案
按热度按时间yfjy0ee71#
正如@someshwar kale所建议的,你可以不用udf。
如果您选择使用自定义项,则可以将自定义项中的函数抽象出来,并连接到一个函数
35g0bw712#
我认为,这是可以实现的没有自定义项-
有自定义项
无自定义项