[Spark SQL_1] Spark SQL 配置


0. 说明

  Spark SQL 的配置基于 Spark 集群搭建  && Hive 的安装&配置


1. 简介

  Spark SQL 是构建在 Spark Core 模块之上的四大模块之一,提供 DataFrame 等丰富 API,可以采用传统的 SQL 语句进行数学计算。运行期间,会通过 Spark 查询优化器翻译产物理执行计划,并行计算后输出结果。底层计算原理仍然采用 RDD 计算实现。


2. Spark 与 Hive 集成

  2.1 在 Spark 配置目录下创建指向 [hive-site.xml ] 文件的同名符号链接

cd /soft/spark/conf
ln -s /soft/hive/conf/hive-site.xml hive-site.xml

  2.2 复制 Hive 元数据库使用的驱动程序到 Spark 的 jars 目录下,比如 MySQL

cd /soft/hive/lib/
cp mysql-connector-java-5.1.44.jar /soft/spark/jars

  2.3 关闭 Hive 配置文件 [hive-site.xml] 文件中版本检查,否则会报版本不一致异常

[centos@s101 ~]$ cd /soft/hive/conf/
[centos@s101 /soft/hive/conf]$ sudo vi hive-site.xml
  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>

3. 在 Spark shell 中访问 Hive

  3.0 开启 ZooKeeper & HDFS & Spark 集群

  略

  3.1 启动 spark-shell,观察输出内容,打印 Hive 配置信息

spark-shell --master spark://s101:7077

  

  若成功则如下图所示

  

  3.2 在 Scala 命令行执行如下命令

# 显示所有数据库
spark.sql("show databases").show()
 
# 使用指定数据库
spark.sql("use mydb").show() 

# 显示当前数据库中的数据表
spark.sql("show tables").show()
 
# 查询 customers 表数据
spark.sql("select * from customers").show(1000,false)

# 构造 RDD
val rdd1= sc.parallelize(Array((1,"tom1",12) ,(2,"tom2",13) ,(2,"tom3",14) ))

# 转换 RDD 成DataFrame
val df = rdd1.toDF("id" , "name" , "age")

# 通过 DataFrame select API 实现 SQL 中的 select 语句
df.select("id").show()

# 注册临时表
df.registerTempTable("_cust")

# 通过临时表进行数据操纵
spark.sql("select * from _cust").show(1000 ,false) ;

原文地址:https://www.cnblogs.com/share23/p/9800500.html