一、概述

  1. spark sql 是用于操作结构化数据的程序包

    • 通过spark sql ,可以使用SQL 或者 HQL 来查询数据,查询结果以Dataset/DataFrame 的形式返回
    • 它支持多种数据源,如Hive 表、Parquet 以及 JSON
    • 它支持开发者将SQL 和传统的RDD 变成相结合
  2. Dataset:是一个分布式的数据集合

    • 它是Spark 1.6 中被添加的新接口
    • 它提供了RDD的优点与Spark SQL 执行引擎的优点
    • 它在ScalaJava 中是可用的。Python 不支持Dataset API。但是由于Python 的动态特性,许多DataSet API 的优点已经可用
  3. DataFrame:是一个Dataset 组成的指定列。

    • 它的概念等价于一个关系型数据库中的表
    • Scala/Python 中,DataFrameDataSet 中的 RowS (多个Row) 来表示。
  4. spark 2.0 之后,SQLContextSparkSession 取代。