解決:?jiǎn)栴}spark-sumbit的時(shí)候報(bào)錯(cuò):Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchTa...

問(wèn)題由來(lái):

進(jìn)行HIveContext使用的時(shí)候,一切都很正常。。。。
hive里有一張dept 的表

記得pom里添加依賴:
 <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.11</artifactId>
      <version>${spark.version}</version>
 </dependency>

IDEA

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.hive.HiveContext

object HiveContextApp {
  def main(args: Array[String]): Unit = {

    //1)創(chuàng)建相應(yīng)的Context
    val sparkConf = new SparkConf()

    //sparkConf.setAppName("HiveContextApp").setMaster("local[2]")

    val sc = new SparkContext(sparkConf)
    val hiveContext = new HiveContext(sc)

    //2)相關(guān)處理--讀hive里的表,簡(jiǎn)單的show一下

    hiveContext.table("dept").show

    //3)關(guān)閉資源
    sc.stop()

  }

}

【打包編譯到生產(chǎn)環(huán)境,提交作業(yè)的時(shí)候問(wèn)題來(lái)了。。。笨笨滴花了好幾個(gè)小時(shí),好在堅(jiān)持一下解決啦】
該啟動(dòng)的你要啟動(dòng)好啦?。。?!

執(zhí)行提交我的腳本
spark-submit \
--class com.cbt.spark.HiveContextApp \
--master local[2] \
--jars /home/hadoop/software/mysql-connector-java-5.1.46-bin.jar \
/home/hadoop/lib/sql-1.0.jar 

報(bào)錯(cuò):Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'dept' not found in database 'default';

解決:
把hive的配置文件hive-site.xml 復(fù)制粘貼到編譯過(guò)后的spark中的conf下面,然后在進(jìn)行重新提交,OK~~~就獲取到dept表 的數(shù)據(jù)啦~
image.png

<文末彩蛋>
如果通過(guò)spark-shell訪問(wèn)hive的時(shí)候,查看到表是空的---也是這個(gè)原因

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容