博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
047 SparkSQL自定义UDF函数
阅读量:6484 次
发布时间:2019-06-23

本文共 1105 字,大约阅读时间需要 3 分钟。

一:程序部分

1.需求

  Double数据类型格式化,可以给定小数点位数

 

2.程序

1 package com.scala.it 2 import org.apache.spark.{SparkConf, SparkContext} 3 import org.apache.spark.sql.SQLContext 4 import org.apache.spark.sql.hive.HiveContext 5  6 import scala.math.BigDecimal.RoundingMode 7 object SparkSQLUDFDemo { 8   def main(args: Array[String]): Unit = { 9     val conf = new SparkConf()10       .setMaster("local[*]")11       .setAppName("udf")12     val sc = SparkContext.getOrCreate(conf)13     val sqlContext = new HiveContext(sc)14 15     // ==================================16     // 写一个Double数据格式化的自定义函数(给定保留多少位小数部分)17     sqlContext.udf.register(18       "doubleValueFormat", // 自定义函数名称19       (value: Double, scale: Int) => {20         // 自定义函数处理的代码块21         BigDecimal.valueOf(value).setScale(scale, RoundingMode.HALF_DOWN).doubleValue()22       })23 24 25     sqlContext.sql(26       """27         |SELECT28         |  deptno,29         |  doubleValueFormat(AVG(sal), 2) AS avg_sal30         |FROM hadoop09.emp31         |GROUP BY deptno32       """.stripMargin).show()33 34   }35 }

 

3.结果

  

 

二:知识点解释

1.udf

  

 

2.refister

  

 

转载地址:http://jeiuo.baihongyu.com/

你可能感兴趣的文章
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>
正则表达式分解剖析(一文悟透正则表达式)
查看>>
解决UILable标点符号居中的问题
查看>>
HTML5新特性教程
查看>>
ImageOptim-无损图片压缩Mac版
查看>>
传统运维团队转型应该注意哪些问题?
查看>>
JavaScript函数(二)
查看>>
Airbnb改进部署管道安全性,规范部署顺序
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
蔡超:入门 Go 语言必须跨越的五个思维误区
查看>>
使用Akka Actor和Java 8构建反应式应用
查看>>
curl常用命令详解
查看>>