SparkSQL之UDF使用

Posted Runner_Jack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SparkSQL之UDF使用相关的知识,希望对你有一定的参考价值。

package cn.piesat.test

import org.apache.spark.sql.SparkSession

import scala.collection.mutable.ArrayBuffer


object SparkSQLTest {

def main(args: Array[String]): Unit = {
val spark=SparkSession.builder().appName("sparkSql").master("local[4]")
.config("spark.serializer","org.apache.spark.serializer.KryoSerializer").getOrCreate()
val sc=spark.sparkContext
val sqlContext=spark.sqlContext
val workerRDD=sc.textFile("F://Workers.txt").mapPartitions(itor=>{
val array=new ArrayBuffer[Worker]()
while(itor.hasNext){
val splited=itor.next().split(",")
array.append(new Worker(splited(0),splited(2).toInt,splited(2)))
}
array.toIterator
})
import spark.implicits._
//注册UDF
spark.udf.register("strLen",(str:String,addr:String)=>str.length+addr.length)
val workDS=workerRDD.toDS()
workDS.createOrReplaceTempView("worker")
val resultDF=spark.sql("select strLen(name,addr) from worker")
val resultDS=resultDF.as("WO")
resultDS.show()

spark.stop()

}

}

以上是关于SparkSQL之UDF使用的主要内容,如果未能解决你的问题,请参考以下文章

用于日期操作的 SparkSQL (Spark 1.3) UDF

sparksql 自定义用户函数(UDF)

Spark篇---SparkSQL中自定义UDF和UDAF,开窗函数的应用

Spark(十八)SparkSQL的自定义函数UDF

Spark学习之路 (十九)SparkSQL的自定义函数UDF

sparksql udf自定义函数中参数过多问题的解决