Structured Streaming
Structured Streaming是 Spark Streaming的进化版
Spark 编程模型的进化过程
总结
RDD的优点
面向对象的操作方式
可以处理任何类型的数据
RDD的缺点
运行速度比较慢, 执行过程没有优化
API比较僵硬, 对结构化数据的访问和操作没有优化
DataFrame的优点
针对结构化数据高度优化, 可以通过列名访问和转换数据
增加 Catalyst优化器, 执行过程是优化的, 避免了因为开发者的原因影响效率
DataFrame的缺点
只能操作结构化数据
只有无类型的 API, 也就是只能针对列和 SQL操作数据, API依然僵硬
Dataset的优点
结合了 RDD和 DataFrame的 API, 既可以操作结构化数据, 也可以操作非结构化数据
既有有类型的 API也有无类型的 API, 灵活选择
Spark 的 序列化 的进化过程
总结
当需要将对象缓存下来的时候, 或者在网络中传输的时候, 要把对象转成二进制, 在使用的时候再将二进制转为对象, 这个过程叫做序列化和反序列化
在 Spark中有很多场景需要存储对象, 或者在网络中传输对象
Task分发的时候, 需要将任务序列化, 分发到不同的 Executor中执行
缓存 RDD的时候, 需要保存 RDD中的数据
广播变量的时候, 需要将变量序列化, 在集群