hive on spark開發demo
阿新 • • 發佈:2018-12-18
public class SparkHiveTest { public static void main(String[] args) { String warehouseLocation = "hdfs://10.1X4.XX2.XX2:9001/home/spark/ive/warehouse/"; SparkSession spark = SparkSession.builder().appName ("Java Spark Hive Example") .master("local[4]") .config("spark.sql.warehouse.dir", warehouseLocation) .enableHiveSupport() .getOrCreate(); Dataset<Row> df = spark.sql("SELECT * FROM test1"); df.show(); Dataset<Row> df2 = spark.sql("SELECT * FROM test2"); df2.show(); Dataset<Row> df3 = spark.sql("SELECT id,name FROM test1 where name = 'lucy'"); System.out.println("#############name = lucy size:"+ df3.count()); spark.stop(); } }
基於Java Api的spark操作hivedemo:
- warehouseLocation : 是hive資料表的存放位置,即hive的warehouse
- .config(“spark.sql.warehouse.dir”, warehouseLocation):配置warehouse
- .enableHiveSupport():開啟sparksession中的hivesupport
介紹了三個例子:
- 第一個是讀取test1中全部資料,select * 是不生成mapreduce任務的,這是直接載入的hdfs檔案
- 第二個是讀取test2中的全部資料,同樣不生成嗎mapreduce任務,這裡要注意的就是hive的warehouse一定得明確,要不然這個操作可能失敗
- 第三個是按照條件載入hive表資料,這裡會產生MapReduce任務,並將結果返回生產一個dataset。