SparkSQL之操作Hive
首先啟動spark-shell:
命令:spark-shell --master local[2] --jars ~/software/mysql-connector-java-5.1.35.jar --driver-class-path /home/iie4bu/software/mysql-connector-java-5.1.35.jar
查看當前有哪些表:
spark.sql("show tables").show,結果如下:
查詢sal表:
按照customerid進行統計,然后獲取出不是空的customerid:
scala> spark.sql("select customerid,count(1) from sal group by customerid").filter("customerid is not null").show
將查詢結果再保存到Hive中
命令:scala> spark.sql("select customerid,count(1) from sal group by customerid").filter("customerid is not null").write.saveAsTable("hive_table_1"),報錯信息:
需要修改成:scala> spark.sql("select customerid,count(1) as mount from sal group by customerid").filter("customerid is not null").write.saveAsTable("hive_table_1")
這樣查詢表就可以看到剛創建的表了:
瀏覽器中查看
我們在瀏覽器中查看剛才的作業:ip:4040
200表示配置分區的數量。
這個值可以手動進行配置:
sparksession.sqlContext.setConf("spark.sql.shuffle.partitions", "10")
然后執行上面的保存成表的操作:
scala> spark.sql("select customerid,count(1) as mount from sal group by customerid").filter("customerid is not null").write.saveAsTable("hive_table_2")
這時再查看看瀏覽器,發現分區是10了
因此在生產環境中,注意設置這個值,默認是200
總結
以上是生活随笔為你收集整理的SparkSQL之操作Hive的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkSQL之External Da
- 下一篇: SparkSQL之操作Mysql