1. 程式人生 > >在sparkSQL中無法找到Hive表apache.spark.sql.catalyst.analysis.NoSuchTableException:Table or view 'emp' not f

在sparkSQL中無法找到Hive表apache.spark.sql.catalyst.analysis.NoSuchTableException:Table or view 'emp' not f

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()

  解決!