1、Data Sources
Spark SQL支持通过DataFrame接口对各种数据源进行操作。DataFrame可以使用关系转换进行操作,也可以用于创建临时视图。将DataFrame注册为临时视图允许您对其数据运行SQL查询。本节描述使用Spark数据源加载和保存数据的一般方法,然后介绍可用于内置数据源的特定选项。
数据源是在Spark1.2版本出现的,Spark SQL开放了一系列接入外部数据源的接口,来让开发者可以实现。例如读取mysql,hive,hdfs,hbase等,而且支持很多种格式如json, parquet, avro, csv格式。我们可以开发出任意的外部数据源来连接到Spark SQL,然后我们就可以通过外部数据源API了进行操作。
2、读取Json文件
前面我们读取Json文件的时候是这么写的:
scala> val df=spark.read.json("file:///home/hadoop/data/stu1.json")
df: org.apache.spark.sql.DataFrame = [email: string, id: string ... 2 more fields]
scala> df.show
+--------+---+--------+-----------+
| email| id| name| phone|
+--------+---+--------+-----------+
|1@qq.com| 1|zhangsan|13721442689|
|2@qq.com| 2| lisi|13721442687|
|3@qq.com| 3| wangwu|13721442688|
|4@qq.com| 4|xiaoming|13721442686|
|5@qq.com| 5|xiaowang|13721442685|
+--------+---+--------+-----------+
标准写法是这样的:
通过format指定要读取的文件格式,用load加载。
scala> val df=spark.read.format("json").load("fi