洞察移动政务小程序助力政府数字化转型,保障数据安全和效率提升
895
2022-09-05
【SparkSQL】扩展 ---- DataSet 数据转换操作
【SparkSQL】扩展 ---- DataSet 数据转换操作
目录:
一、有类型的转换算子
1.转换类操作 ---- flatMap、map、mapPartitions
2.转换类操作 ---- transform
3.转换类操作 ---- as
4.过滤类操作 ---- filter
5.聚合类操作 ---- groupByKey
6.切分类操作 ---- randomSplit、sample
7.排序类操作 ---- orderBy、sort
8.去重类操作 ---- distinct、dropDuplicates
9.集合类操作 ---- 交集、并集、差集、limit
二、无类型的转换算子
1.选择 ---- select、selectExpr、select(expr())
2.新建列 ---- withColumn、withColumnRenamed
3.剪除 ---- drop
4.聚合 ---- groupBy
一、有类型的转换算子
1.转换类 ---- map、flatMap、mapPartitions
map 可以将数据集中每条数据转为另一种形式
通过flatMap可以将一条数据转为一个数组,然后再展开这个数组放入DataSet
iter是一个分区数据集合,map是将分区中的每一个元素进行转换,再生成一个新的集合
返回顶部
2.转换类 ---- transform
返回顶部
3.转换类 ---- as
as[Type]算子的主要作用是将弱类型的Dataset转为强类型的Dataset,它有很多适用场景,但是最常见的还是在读取数据的时候,因为DataFrameReader体系大部分情况下是将读出来的数据转换为DataFrame的形式如果后续需要使用Dataset的强类型API,则需要将DataFrame转为Dataset.可以使用as[Type]算子完成这种操作本质上就是 DataSet[Row].as[Students] —> DataSet[Students]
返回顶部
4.过滤类 ---- filter
返回顶部
5.聚合类 ---- groupByKey
6.切分类 ---- randomSplit、sample
返回顶部
7.排序类 ---- orderBy、sort
返回顶部
8.去重类操作 ---- distinct、dropDuplicates
返回顶部
9.集合类操作 ---- 交集、并集、差集、limit
返回顶部
二、无类型的转换算子
1.选择 ---- select、selectExpr、select(expr())
选择操作,只可以选择具有的列在 DataSet 中,select 可以在任何位置调用使用selectExpr传入表达式参数使用expr将字符串转为逻辑执行计划 ---- 解析表达式
返回顶部
2.新建列 ---- withColumn、withColumnRenamed
withColumn 可以进行添加列,重命名等操作,这里的重命名是新建原有列再命名withColumnRenamed 可以直接给原有列改名
返回顶部
3.剪除 ---- drop
返回顶部
4.聚合 ---- groupBy
groupBy 按照给定的行进行分组
为什么groupByKey是有类型的转换操作?主要原因是groupByKey所生成的对象中的算子是有类型的为什么groupBy是无类型的转换操作?主要是因为groupBy所生成的对象中的算子是无类型的,只针对列进行处理的
返回顶部
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~