Spark SQL函数
发布时间:2018-10-23 14:35,
浏览次数:942
, 标签:
Spark
SQL
<>Spark SQL函数
<>一、概述
<>1、来源:
本文总结自spark 2.3.1 API文档 org.apache.spark.sql:object functions;
<>2、使用:
org.apache.spark.sql.functions中提供了约两百多个函数,大部分函数与Hive中类似,除UDF函数,均可在SparkSQL中直接使用;
如果想要用于Dataframe 和 Dataset,可导入函数:
import org.apache.spark.sql.functions._
其中,大部分支持Column的函数也支持String类型的列名,这些函数的返回类型基本都是Column。
<>3、函数分类:
* 聚合函数
* 集合函数
* 时间函数
* 数学函数
* 混杂misc函数
* 其他非聚合函数
* 排序函数
* 字符串函数
* UDF函数
* 窗口函数
<>二、函数:
<>1、聚合函数
函数 作用
approx_count_distinct count_distinct近似值
avg 平均值
collect_list 聚合指定字段的值到list
collect_set 聚合指定字段的值到set
corr 计算两列的Pearson相关系数
count 计数
countDistinct 去重计数 SQL中用法select count(distinct class)
covar_pop 总体协方差(population covariance)
covar_samp 样本协方差(sample covariance)
first 分组第一个元素
last 分组最后一个元素
grouping
grouping_id
kurtosis 计算峰态(kurtosis)值
skewness 计算偏度(skewness)
max 最大值
min 最小值
mean 平均值
stddev 即stddev_samp
stddev_samp 样本标准偏差(sample standard deviation)
stddev_pop 总体标准偏差(population standard deviation)
sum 求和
sumDistinct 非重复值求和 SQL中用法select sum(distinct class)
var_pop 总体方差(population variance)
var_samp 样本无偏方差(unbiased variance)
variance 即var_samp <>2、集合函数
函数 作用
array_contains(column,value) 检查array类型字段是否包含指定元素
explode 展开array或map为多行
explode_outer 同explode,但当array或map为空或null时,会展开为null。
posexplode 同explode,带位置索引。
posexplode_outer 同explode_outer,带位置索引。
from_json 解析JSON字符串为StructType or ArrayType,有多种参数形式,详见文档。
to_json 转为json字符串,支持StructType, ArrayType of StructTypes, a MapType or
ArrayType of MapTypes。
get_json_object(column,path) 获取指定json路径的json对象字符串。
json_tuple(column,fields) 获取json中指定字段值。
map_keys 返回map的键组成的array
map_values 返回map的值组