SparkJavaAPI查询hive
// 最终代码
SparkConf sparkConf = new SparkConf()
.setMaster("local[*]")
.setAppName("main.demo2");
SparkSession spark = SparkSession
.builder()
.config(sparkConf)
.enableHiveSupport()
.config("hive.metastore.uris", "thrift://127.0.0.1:9083")
.config("spark.sql.warehouse.dir", "hdfs://127.0.0.1:50070/user/hive/warehouse") .config("spark.sql.hive.convertMetastoreOrc", false)
.config("convertMetastoreParquet", false)
.getOrCreate();
spark.sql("show databases").show();
spark.sql("show tables").show();
需要注意的是:
服务器上/apps/spark/warehouse(默认路径)下需要放入
如果没有该目录则进行创建 mkdir -p /apps/spark/warehouse
遇到的异常:
可以show databases;show tables。但是
spark-sql查询结果总是空表,但hive客户端是正常的;
代码中需要加入下面的配置:
.config("spark.sql.hive.convertMetastoreOrc", false) .config("convertMetastoreParquet", false)
最最最详细的学习博客