Apache spark 使用Spark v 1.6的SQLContext访问配置单元表时出现“找不到表”错误
使用时出现“找不到表”错误Apache spark 使用Spark v 1.6的SQLContext访问配置单元表时出现“找不到表”错误,apache-spark,apache-spark-sql,spark-streaming,Apache Spark,Apache Spark Sql,Spark Streaming,使用时出现“找不到表”错误 SQLContext-sqlCon=SQLContext.getOrCreate(saprkContext.sc()) 堆栈跟踪如下所示: 18/08/16 19:58:31 INFO cluster.YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.8 Exception
SQLContext-sqlCon=SQLContext.getOrCreate(saprkContext.sc())代码>
堆栈跟踪如下所示:
18/08/16 19:58:31 INFO cluster.YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.8
Exception in thread "main" org.apache.spark.sql.AnalysisException: Table not found: `schema`.`tableName`;
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:54)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:50)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:121)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:120)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:120)
at scala.collection.immutable.List.foreach(List.scala:318)
at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:120)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.checkAnalysis(CheckAnalysis.scala:50)
at org.apache.spark.sql.catalyst.analysis.Analyzer.checkAnalysis(Analyzer.scala:44)
at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:35)
at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:133)
at org.apache.spark.sql.DataFrame$.apply(DataFrame.scala:52)
at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:829)
at com.ktk.ccemi.MIProcess$1StaticDataLoader.loadData(MIProcess.java:211)
at com.ktk.ccemi.MIProcess$1StaticDataLoader.<init>(MIProcess.java:167)
at com.ktk.ccemi.MIProcess.createContext(MIProcess.java:234)
at com.ktk.ccemi.MIProcess$1.call(MIProcess.java:74)
at com.ktk.ccemi.MIProcess$1.call(MIProcess.java:1)
at org.apache.spark.streaming.api.java.JavaStreamingContext$$anonfun$10.apply(JavaStreamingContext.scala:776)
18/08/16 19:58:31 INFO cluster.yanclientSchedulerBackend:SchedulerBackend在到达minRegisteredResourcesRatio:0.8后准备好开始调度
线程“main”org.apache.spark.sql.AnalysisException中的异常:未找到表:`schema`.`tableName`;
位于org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
位于org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$CheckAnalysis$1.apply(CheckAnalysis.scala:54)
位于org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$CheckAnalysis$1.apply(CheckAnalysis.scala:50)
位于org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:121)
位于org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:120)
位于org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$foreachUp$1.apply(TreeNode.scala:120)
位于scala.collection.immutable.List.foreach(List.scala:318)
位于org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:120)
位于org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.CheckAnalysis(CheckAnalysis.scala:50)
位于org.apache.spark.sql.catalyst.analysis.Analyzer.checkAnalysis(Analyzer.scala:44)
位于org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:35)
位于org.apache.spark.sql.DataFrame(DataFrame.scala:133)
位于org.apache.spark.sql.DataFrame$.apply(DataFrame.scala:52)
位于org.apache.spark.sql.SQLContext.sql(SQLContext.scala:829)
位于com.ktk.ccemi.MIProcess$1StaticDataLoader.loadData(MIProcess.java:211)
在com.ktk.ccemi.MIProcess$1StaticDataLoader上。(MIProcess.java:167)
位于com.ktk.ccemi.MIProcess.createContext(MIProcess.java:234)
在com.ktk.ccemi.MIProcess$1.call(MIProcess.java:74)
在com.ktk.ccemi.MIProcess$1.call(MIProcess.java:1)
位于org.apache.spark.streaming.api.java.JavaStreamingContext$$anonfun$10.apply(JavaStreamingContext.scala:776)
我正在使用带检查点的Spark streaming,我的Spark版本是1.6。要访问您需要的配置单元表,请执行以下操作:
- Spark 1.x中的HiveContext
SparkSession
在Spark 2.x中启用配置单元支持不支持通过basic
SQLContext
访问配置单元表。这不是真的,引用Spark文档中的话“使用SQLContext,应用程序可以从现有RDD、配置单元表或数据源创建数据帧。”[]()