Apache Hive 是 Hadoop 上的 SQL 引擎,Spark SQL 编译时可以包含 Hive 支持,也可以
不包含。包含 Hive 支持的 Spark SQL 可以支持 Hive 表访问、UDF(用户自定义函数)、
SerDe(序列化格式和反序列化格式),以及 Hive 查询语言(HiveQL/HQL)
带有 Hive 支持的 Spark SQL 的 Maven 索引
groupId = org.apache.spark
artifactId = spark-hive_2.10
version = 1.2.0
DataFrame(SchemaRDD) 是一个由 Row 对象组成的 RDD,附带包含每列数据类型的结构信息。Row 对象只是对基本数据类型(如整型和字符串型等)的数组的封装。可以把任意 SchemaRDD 注册为临时表,这样就可以使用 HiveContext.sql 或 SQLContext.sql 来对它进行查询了。你可以通过 SchemaRDD 的 registerTempTable() 方法这么做。临时表是当前使用的 HiveContext 或 SQLContext 中的临时变量,在你的应用退出时这些临时表就不再存在了。
缓存
为了确保使用更节约内存的表示方式进行缓存而不是储存整个对象,应当使用专门的 hiveCtx.cacheTable(“tableName”) 方法。
读取和存储数据
当你使用SQL 查询这些数据源中的数据并且只用到了一部分字段时,Spark SQL 可以智能地只扫描这些用到的字段,而不是像 SparkContext.hadoopFile 中那样简单粗暴地扫描全部数据。
Spark 中使用 UDF
https://www.iteblog.com/archives/2038.