DataFrame

1.1 DataFrame是什么

  • DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。

1.2 DataFrame和RDD的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0PH9hGCO-1655396298057)(assets/1653400255144.png)]

  • 上图直观地体现了DataFrame和RDD的区别。

  • DataFrame是基于RDD之上的分布式数据集,给予Schema信息。

    • 左边:RDD -> 数据外在类型:Person(CaseClass),内部结构不知道
    • 右边:DataFrame -> 数据内部结构,全部知道,包含字段名称和字段类型,但是不知道外部类型,Row类型(弱类型)

    DataFrame = RDD[Row] + Schema

1.2 RDD与DataFrame性能

  • Spark SQL性能上比RDD要高。因为Spark SQL了解数据内部结构,从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。反观RDD,由于无从得知所存数据元素的具体内部结构,Spark Core只能在Stage层面进行简单、通用的流水线优化。
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?