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()

  }

}

原文地址:https://www.cnblogs.com/runnerjack/p/10661870.html

时间: 2024-10-10 22:13:18

SparkSQL之UDF使用的相关文章

sparkSQL中udf的使用

在Spark中使用sql时一些功能需要自定义方法实现,这时候就可以使用UDF功能来实现 多参数支持 UDF不支持参数*的方式输入多个参数,例如String*,不过可以使用array来解决这个问题. 定义udf方法,此处功能是将多个字段合并为一个字段 def allInOne(seq: Seq[Any], sep: String): String = seq.mkString(sep) 在sql中使用 sqlContext.udf.register("allInOne", allInOn

大数据常见错误

1.用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries! 解决方法:add export SPARK_LOCAL_IP="127.0.0.1" to spark-env.sh 2.java Kafka producer error:ERROR kafka.utils.Util

全面深度剖析Spark2--知识点,源码,调优,JVM,图计算,项目

全面深度剖析Spark2--知识点,源码,调优,JVM,图计算,项目 课程观看地址:http://www.xuetuwuyou.com/course/220 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:西瓜老师 课程共14章,316节,课程从Spark相关的各个技术点进行全方位剖析,最后结合实际项目:用户交互式行为分析系统.DMP用户画像系统,对Spark做了综合性的应用讲解,可以说一套在手,打遍天下无敌手! 第1章:Scala  任务1: java和scala

大数据常见错误解决方案(转载)

1.用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries! 解决方法:add export SPARK_LOCAL_IP="127.0.0.1" to spark-env.sh 2.java Kafka producer error:ERROR kafka.utils.Util

SparkSQL使用之如何使用UDF

使用java开发一个helloworld级别UDF,打包成udf.jar,存放在/home/hadoop/lib下,代码如下: package com.luogankun.udf; import org.apache.hadoop.hive.ql.exec.UDF; public class HelloUDF extends UDF { public String evaluate(String str) { try { return "HelloWorld " + str; } ca

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

在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF(User- Defined Aggregation Funcation),用户自定义聚合函数,类似在group by之后使用的sum,avg等 UDTF(User-Defined Table-Generating Functions),用户自定义生成函数,有点像stream里面的flatMap 自定

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

讨论QQ:1586558083 在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF(User- Defined Aggregation Funcation),用户自定义聚合函数,类似在group by之后使用的sum,avg等 UDTF(User-Defined Table-Generating Functions),用户自定义生成函数,有点像str

sparksql 自定义用户函数(UDF)

自定义用户函数有两种方式,区别:是否使用强类型,参考demo:https://github.com/asker124143222/spark-demo 1.不使用强类型,继承UserDefinedAggregateFunction package com.home.spark import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, SparkSession} import org.apache.

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

在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF(User- Defined Aggregation Funcation),用户自定义聚合函数,类似在group by之后使用的sum,avg等 UDTF(User-Defined Table-Generating Functions),用户自定义生成函数,有点像stream里面的flatMap 自定