在spark中对数据进行处理udf函数还是很多的下面介绍在df下udf操作实例
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
调用sqlcontext里面的udf函数
sqlContext.udf.register("str",(_:String).length)
sqlContext.sql("select str('test')")
这个就是对test这个String计算它的长度
下面代码是先自己构建一个DF
在里面取出大于98的列值
sqlContext.udf.register("rd",(n:Int)=>{n>98})
case class TestData(key:Int,Value:String)
val df4=sqlContext.sparkContext.parallelize(1 to 100).map(i=>TestData(i,i.toString)).toDF()
df4.registerTempTable("integerData")
sql里面where操作调用UDF
val result=sqlContext.sql("select * from integerData where rd(key)")
sql里面group操作 对列值大于10的进行sum操作
<