1.问题描述
使用Scala编程,通过SparkSession连接hive中的表,但是没有找到,报错:
Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Table or view 'emp' not found in database 'default';
然而,在spark-shell中使用同样的命令,却可以访问到hive中的表。很纠结!
附上代码:
val spark=SparkSession.builder().appName("HiveMySQLApp").master("local[2]").getOrCreate()
//加载hive表
val hiveDF=spark.table("emp")
//关闭
spark.close()
2.问题原因
SparkSession没有开启支持hive的功能
3.解决办法
在SparkSession添加支持hive的配置:SparkSession.enableHiveSupport()
val spark=SparkSession.builder().appName("HiveMySQLApp").master("local[2]").enableHiveSupport().getOrCreate()
//加载hive表
val hiveDF=spark.table("emp")
//关闭
spark.close()