Spark SQL函数API
程序员文章站
2022-06-01 16:06:21
...
创建DF
RDD转DFtoDF转为DataFrame,toDF的参数是String类型的变长参数使用名称数组使用createDataFrame创建指定文件类型创建DF指定文件类型创建DFspark表示sparkSession,因为Json自带属性名和属性值,可直接获得schema指定schema创建dfs对于csv,txt格式,可以指定分隔符和schemaDF的特征方法df.printSchema 显示schema
DSL函数
1、selectimport spark.implicits._df1.select($"name", $"age"+1).show2、where和filterdf.select($"name", $"age").filter($"age">20).show3、groupBydf.select("age").filter($"age">20).groupBy("age").count.show4、orderBy5、head,take,first6、join更多种join内容,参见https://blog.csdn.net/timothyzh/article/details/89919157
使用SQL语句
DF使用sql语句,需要创建一个临时视图1、临时视图df1.createOrReplaceTempView("people") spark.sql("select age from people where age is not null group by age").show
2、全局临时视图
df.createGlobalTempView("people") spark.newSession().sql("SELECT * FROM global_temp.people").show()
全局临时视图可跨session使用,保存在数据库global_temp中
聚合函数
count_distinct 近似值avg mean 平均值collect_list 聚合指定字段的值到listcollect_set 聚合指定字段的值到setcountDistinct 去重计数select count(distinct class) 去重计数first 分组第一个元素last 分组最后一个元素grouping sets 等同于group by A,B union group by A,Cmax 最大值min 最小值sum 求和sumDistinctselect sum(distinct class) 非重复值求和
字符串函数
concat(exprs: Column*) 连接多列字符串initcap(e: Column) 单词首字母大写upper(e: Column) 转大写instr(str: Column, substring: String) substring在str中第一次出现的位置length(e: Column) 字符串长度locate(substr: String, str: Column, pos: Int): substring在str中第一次出现位置,0表示未找到,从pos位置后查找trim(e: Column):剪掉左右两边的空格、空白字符regexp_replace(e: Column, pattern: Column, replacement: Column): 正则替换匹配的部 分,这里参数为列reverse(str: Column) 将str反转
窗口函数
窗口函数在是聚合函数后面使用over()标记要使用窗口功能,填写partition by指明分区,使用order by指明排序,over函数外面指明需要返回哪些值rank() 排名,返回数据项在分组中的排名,排名相等会在名次中留下空位 1,2,2,4dense_rank() 排名,返回数据项在分组中的排名,排名相等会在名次中不会留下空位row_number():行号,为每条记录返回一个数字 1,2,3,4spark.sql("select name,age rank() over(partition by name order by age) as rank from global_temp.Human").show
自定义UDF
RDD转DataSet
二者关系如下图,DataSet不如DataFrame灵活DataSet是数据类型安全的类。DataFrame没有类型,只有字段的定义RDD调用toDS转为DataSet类型
上一篇: Nginx服务器上安装并配置PHPMyAdmin的教程_PHP
下一篇: input获取value
推荐阅读
-
SQL Server高级内容之case语法函数概述及使用
-
SQL中的ISNULL函数使用介绍
-
Sql Server函数的操作实例(执行多条语句,返回Select查询后的临时表)
-
SQL GetStmtAttr函数定义及用法讲解
-
sql server中随机函数NewID()和Rand()
-
利用ROW_NUMBER() OVER函数给SQL数据库中每一条记录分配行号的方法
-
Spark RDD API详解之:Map和Reduce
-
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
-
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
-
SQL SERVER函数之深入表值函数的处理分析