8. Dataset (DataFrame) 的基础操作
这一章节主要目的是介绍 Dataset
的基础操作, 当然, DataFrame
就是 Dataset
, 所以这些操作大部分也适用于 DataFrame
-
有类型的转换操作
-
无类型的转换操作
-
基础
Action
-
空值如何处理
-
统计操作
8.1. 有类型操作
分类 | 算子 | 解释 |
---|---|---|
转换 |
|
通过
|
|
|
|
|
|
|
|
|
|
|
|
|
过滤 |
|
|
聚合 |
|
其实这也印证了分组后必须聚合的道理
|
切分 |
|
|
|
|
|
排序 |
|
|
|
其实
|
|
分区 |
|
减少分区, 此算子和
|
|
|
|
去重 |
|
使用
|
|
当 所以, 使用
|
|
集合操作 |
|
|
|
求得两个集合的交集
|
|
|
求得两个集合的并集
|
|
|
限制结果集数量
|
8.2. 无类型转换
分类 | 算子 | 解释 |
---|---|---|
选择 |
|
|
|
在
|
|
|
通过
|
|
|
修改列名
|
|
剪除 |
drop |
剪掉某个列
|
聚合 |
groupBy |
按照给定的行进行分组
|
8.5. Column 对象
Column 表示了 Dataset 中的一个列, 并且可以持有一个表达式, 这个表达式作用于每一条数据, 对每条数据都生成一个值, 之所以有单独这样的一个章节是因为列的操作属于细节, 但是又比较常见, 会在很多算子中配合出现
分类 | 操作 | 解释 |
---|---|---|
创建 |
|
单引号
|
|
同理,
|
|
|
|
|
|
|
|
|
前面的
|
|
|
可以通过
|
|
别名和转换 |
|
|
|
通过
|
|
添加列 |
|
通过
|
操作 |
|
通过
|
|
通过
|
|
|
在排序的时候, 可以通过
|
9. 缺失值处理
-
DataFrame
中什么时候会有无效值 -
DataFrame
如何处理无效的值 -
DataFrame
如何处理null
- 缺失值的处理思路
-
DataFrameNaFunctions
-
如何使用
SparkSQL
处理null
和NaN
? -
如何使用
SparkSQL
处理异常字符串 ?
10. 聚合
-
groupBy
-
rollup
-
cube
-
pivot
-
RelationalGroupedDataset
上的聚合操作
-
groupBy
- 多维聚合
-
rollup
操作符 -
使用
rollup
完成pm
值的统计 -
cube
-
SparkSQL
中支持的SQL
语句实现cube
功能 -
RelationalGroupedDataset
11. 连接
-
无类型连接
join
-
连接类型
Join Types
-
无类型连接算子
join
的API
- 连接类型
- [扩展] 广播连接