Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用Spark v 1.6的SQLContext访问配置单元表时出现“找不到表”错误_Apache Spark_Apache Spark Sql_Spark Streaming - Fatal编程技术网

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、配置单元表或数据源创建数据帧。”[]()