9.3 读取和存储数据

当你使用 SQL 查询这些数据源中的数据并且只用到了一部分字段时,Spark SQL 可以智能地只扫描这些用到的字段,而不是像 SparkContext.hadoopFile 中那样简单粗暴地扫描全部数据。

9.3.1 Apache Hive

从 Hive 中读取数据时,Spark SQL 支持任何 Hive 支持的存储格式(SerDe),包括文本文件、RCFiles、ORC、Parquet、Avro,以及 Protocol Buffer。

9.3.2 Parquet

Parquet(http://parquet.apache.org/)是一种流行的列式存储格式,可以高效地存储具有嵌套字段的记录。
Parquet 格式经常在 Hadoop 生态圈中被使用,它也支持 Spark SQL 的全部数据类型。

9.3.3 JSON

要读取 JSON 数据,只要调用 hiveCtx 中的 jsonFile() 方法即可。

printSchema() 输出的结构信息。

9.3.4 基于RDD

使用 Row 和具名元组创建: