暂无说说

DataFrame与RDD的区别

pyspark jiajun 8个月前 (03-03) 144次浏览 0个评论 扫描二维码

DataFrame 的推出,让 Spark 具备了处理大规模结构化数据的能力,不仅比原有的 RDD 转化方式更加简单易用,而且获得了更高的计算性能。Spark 能够轻松实现从 MySQL 到 DataFrame 的转化,并且支持 SQL 查询。

图 DataFrame 与 RDD 的区别

从上面的图中可以看出 DataFrame 和 RDD 的区别。RDD 是分布式的 Java 对象的集合,比如,RDD[Person]是以 Person 为类型参数,但是,Person 类的内部结构对于 RDD 而言却是不可知的。DataFrame 是一种以 RDD 为基础的分布式数据集,也就是分布式的 Row 对象的集合(每个 Row 对象代表一行记录),提供了详细的结构信息,也就是我们经常说的模式(schema),Spark SQL 可以清楚地知道该数据集中包含哪些列、每列的名称和类型。
和 RDD 一样,DataFrame 的各种变换操作也采用惰性机制,只是记录了各种转换的逻辑转换路线图(是一个 DAG 图),不会发生真正的计算,这个 DAG 图相当于一个逻辑查询计划,最终,会被翻译成物理查询计划,生成 RDD DAG,按照之前介绍的 RDD DAG 的执行方式去完成最终的计算得到结果。

喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址