1.1 DataFrame

  • 分布式数据容器,类似于传统数据库的二维表格
  • 除了数据还记录schema
  • 支持嵌套数据类型(struct、array、map)
  • 懒执行
  • 性能优于RDD,因为Spark catalyst optimiser会优化执行计划

image.png

1.2 DataSet

  • 具有类型安全检查和查询优化特性
  • 支持编解码器,访问非堆上数据时无需序列化整个对象
  • 支持样例类直接映射字段
  • DataFrame = DataSet[T]
  • DataSet是强类型的,所以支持更严格的错误检查

    1.3 SparkSession

    老版本Spark支持两种SQL查询起点:SQLContext和HiveContext,前者提供查询Spark中的数据,后者用于连接Hive查询。
    SparkSession是Spark最新的SQL查询起点,实质上等于SQLContext+HiveContext。