Spark SQL操作结构化和半结构化数据
读取数据 对数据源执行SQL查询,返回Row对象组成的RDD,每个Row对象是一条记录,记录访问基于下标,每个Row都有一个get()方法
1 Apache Hive
> Hadoop的结构化数据源
> Spark中复制hive-site.xml,创建HiveContext对象,使用HiveQL查询表
2 JSON
> 半结构化数据
> 不需要hive-site.xml,先创建HiveContext对象,调用HiveContext.jsonFile方法从整个文件中获取由Row对象组成的RDD
数据库
1 JDBC
> org.apache.spark.rdd.JdbcRDD
2 Cassandra
> 未支持Spark SQL
> 使用DataStax的Cassandra连接器
3 HBase
> org.apache.hadoop.hbase.io.ImmutableBytesWritable
> org.apache.hadoop.hbase.client.Result
4 Elasticsearch
> Elasticsearch是开源的,基于Lucene的搜索系统
> 使用Elasticsearch-Hadoop读写数据
> 依赖SparkContext的配置项