spark-shell与spark-sql的访问hive

1.spark-shell的使用:

安装完spark之后,将spark/bin的路径配置到本地文件,即可不需要进入spark/bin目录下启动任务

1)直接打开,运行以下命令会发现无法访问hive表的数据:

spark-shell --master local[2]

spark.sql("show tables").show()

spark-shell与spark-sql的访问hive_第1张图片

2)将hive/conf目录下的hive-site.xml文件拷贝到spark/conf目录下(且添加参数“hive.metastore.schema.verification”的值为“true”,这样做的目的是使得进入spark客户端时不报版本不匹配错误;但是不添加也是可以正常运行的)

随后运行命令:

spark-shell --master local[2] --jars jar/mysql-connector-java-5.1.27-bin.jar

此处jars后面的参数是mysql的jar包所在的路径

再后即可调用sql命令,并得到结果:

spark.sql("select * from stu").show()

spark.sql("select * from test_db.stu").show()

spark.sql("insert overwrite table test_db.stu select if(id=1,11,id) as id,name from test_db.stu")

sparksql运行的速度比hive要快很多,且可以在web页面“4040”端口进行查看

 

2)spark-sql的使用:

鉴于在spark-shell中每一次使用都需要调用spark.sql方法,故可以使用一下命令打开spark客户端:

spark-sql --master local[2] --jars jar/mysql-connector-java-5.1.27-bin.jar

这样即可在客户端直接使用sql代码,并在4040端口进行查看

spark-shell与spark-sql的访问hive_第2张图片

你可能感兴趣的:(hive,spark)