【SparkSQL】扩展 ---- DataSet 数据转换操作

网友投稿 895 2022-09-05

【SparkSQL】扩展 ---- DataSet 数据转换操作

【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小时内删除侵权内容。

上一篇:踩坑CBO,解决那些坑爹的SQL优化问题
下一篇:WireShark快速多端点数据捕获
相关文章

 发表评论

暂时没有评论,来抢沙发吧~