IDEA运行Hive语句错误,报错信息如下
org.apache.spark.sql.AnalysisException: Table or view not found
select * from qfbap_dws.dws_user_visit_month1
19/01/11 19:33:03 INFO SharedState: loading hive config file: file:/C:/Users/hfh/Desktop/%e8%af%be%e4%bb%b6/%e6%9c%80%e5%90%8e%e9%98%b6%e6%ae%b5/%e6%96%b0%e5%bb%ba%e6%96%87%e4%bb%b6%e5%a4%b9/projectSparkOnHive/target/classes/hive-site.xml
19/01/11 19:33:03 INFO SharedState: spark.sql.warehouse.dir is not set, but hive.metastore.warehouse.dir is set. Setting spark.sql.warehouse.dir to the value of hive.metastore.warehouse.dir ('hdfs://mini01:9000/qfbap').
19/01/11 19:33:03 INFO SharedState: Warehouse path is 'hdfs://mini01:9000/qfbap'.
19/01/11 19:33:08 INFO StateStoreCoordinatorRef: Registered StateStoreCoordinator endpoint
19/01/11 19:33:08 INFO SparkSqlParser: Parsing command: select * from qfbap_dws.dws_user_visit_month1
Exception in thread "main" org.apache.spark.sql.AnalysisException: Table or view not found: `qfbap_dws`.`dws_user_visit_month1`; line 1 pos 14;
'Project [*]
+- 'UnresolvedRelation `qfbap_dws`.`dws_user_visit_month1`
at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:82)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:78)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:127)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:126)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:126)
at scala.collection.immutable.List.foreach(List.scala:318)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:126)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.checkAnalysis(CheckAnalysis.scala:78)
at org.apache.spark.sql.catalyst.analysis.Analyzer.checkAnalysis(Analyzer.scala:91)
at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:52)
at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:66)
at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:623)
at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:691)
at scala.ConfigurationManager$.main(ConfigurationManager.scala:24)
at scala.ConfigurationManager.main(ConfigurationManager.scala)
解决方法:
把Hadoop集群的core-site.xml,hdfs-sit.xml和hive的hive-site.xml文件拷贝到项目的resources目录下.
在hive-site.xml中指定hive.metastore.warehouse.dir和spark.sql.warehouse.dir路径
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://mini01:9000/qfbap</value>
</property>
<property>
<name>spark.sql.warehouse.dir</name>
<value>hdfs://mini01:9000/user/hive/warehouse</value>
</property>
另一种原因是scala和spark版本不兼容导致的详见Table or view not found