【Spark学习】使用Spark SQL操作外部hive数据库

一.基本介绍
默认情况下,spark自带hive,可以直接在spark-shell使用spark.sql("…")来操作内置的hive数据库

二.使用外部hive
①删除spark中内置的hive。即删除metastore_db和spark-warehouse文件夹
②将外部hive中的hive-site.xml文件复制到spark/conf中
③将mysql-connector-java-5.1.39.jar拷贝到jars目录下
④重启spark-shell
⑤这时spark.sql("…")访问的就是外部的hive了
⑥也可以使用bin/spark-sql命令行操作hive

三.案例演示
【Spark学习】使用Spark SQL操作外部hive数据库_第1张图片
1.将该数据文件上传到Linux,数据默认分割符为逗号 ,
2.在hive中创建spark数据库
【Spark学习】使用Spark SQL操作外部hive数据库_第2张图片
3.在spark数据库中建表
【Spark学习】使用Spark SQL操作外部hive数据库_第3张图片
SQL语句参考

CREATE TABLE  law ( 
ip bigint, 
area int,
ie_proxy string, 
ie_type string ,
userid string,
clientid string,
time_stamp bigint,
time_format string,
pagepath string,
ymd int,
visiturl string,
page_type string,
host string,
page_title string,
page_title_type int,
page_title_name string,
title_keyword string,
in_port string,
in_url string,
search_keyword string,
source string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE;

4.将上传的文件导入数据表
在这里插入图片描述
5.查看表结构
【Spark学习】使用Spark SQL操作外部hive数据库_第4张图片
6.查看前10行
【Spark学习】使用Spark SQL操作外部hive数据库_第5张图片
7.使用spark-shell操作hive数据表
使用spark.sql(“show databases”).show查看到了hive的中数据库,就代表spark可以正常操作hive了
【Spark学习】使用Spark SQL操作外部hive数据库_第6张图片
8.查看表结构
【Spark学习】使用Spark SQL操作外部hive数据库_第7张图片
9.查看前50行数据
【Spark学习】使用Spark SQL操作外部hive数据库_第8张图片

你可能感兴趣的:(【Spark学习】使用Spark SQL操作外部hive数据库)