当前位置: 首页 > 知识库问答 >
问题:

使用配置单元表时Spark submit引发错误

那开济
2023-03-14

我有一个奇怪的错误,我正在尝试写数据到hive,它在spark-shell中运行良好,但是当我使用spark-submit时,它抛出的数据库/表在默认错误中找不到。

下面是我试图在spark-submit中编写的代码,我使用的是Spark2.0.0的自定义构建

 val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext.table("spark_schema.iris_ori")
/home/ec2-user/Spark_Source_Code/spark/bin/spark-submit --class TreeClassifiersModels --master local[*] /home/ec2-user/Spark_Snapshots/Spark_2.6/TreeClassifiersModels/target/scala-2.11/treeclassifiersmodels_2.11-1.0.3.jar /user/ec2-user/Input_Files/defPath/iris_spark SPECIES~LBL+PETAL_LENGTH+PETAL_WIDTH RAN_FOREST 0.7 123 12

16/05/20 09:05:18 INFO sparksqlParser:解析命令:spark_schema.measures_20160520090502线程“main”org.apache.spark.sql.AnalysisException中出现异常:数据库“spark_schema”不存在;在org.apache.spark.sql.catalyst.catalog.externalcatalog.requiredbexists(externalcatalog.scala:37)在org.apache.spark.sql.catalyst.catalog.inmemorycatalog.tableexists(inmemorycatalog.scala:195)在org.apache.spark.sql.catalyst.catalog.sessioncatalog.tableexists(sessioncatalog.scala:360)在$.dorunmain$1(SparkSubmit.scala:183)在org.apache.spark.deploy.sparkSubmit$.submit(SparkSubmit.scala:208)在org.apache.spark.deploy.sparkSubmit$.main(SparkSubmit.scala:122)在org.apache.spark.deploy.sparkSubmit.main(sparkSubmit.scala:122)在org.apache.spark.deploy.sparkSubmit.main(sparkSubmit.scala)

共有1个答案

颛孙飞鸾
2023-03-14

这个问题是因为Spark版本2.0.0上发生了弃用。Spark 2.0.0中不推荐使用配置单元上下文。要在Spark2.0.0上读/写配置单元表,我们需要使用Spark会话,如下所示。

val sparkSession = SparkSession.withHiveSupport(sc)
 类似资料:
  • 我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

  • 当我尝试使用Hive执行非聚合命令时,查询似乎可以正常工作,如下所示: 从Airlines_Analysis.Airline中选择*;从Airlines_Analysis.Airline中选择Airlines.Month; org.apache.hive.service.cli.hivesqlexception:处理语句时出错:失败:执行错误,从org.apache.hive.service.cl

  • 当我使用 pyflink 蜂巢 sql 读取数据插入到 es 中时,抛出以下示例:环境: flink 1.11.2 flink-sql-连接器-hive-3.1.2_2.11-1.11.2.jar hive 3.1.2 如何解决这个问题?

  • 我试图运行此函数以获取配置单元中的当前日期,但出现以下错误: 编译语句时出错:FAILED:SemanticExctive无有效特权此查询所需的特权:Server=server1- 我在网上搜索,并被建议以下功能来获取Hive中的当前日期,但都给出了相同的错误: 但是,如果我按照给定的方式运行它们,它们都会显示错误。

  • 我正在使用Spark SQL读取一个配置单元表,并将其分配给一个scala val 有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。 嗨,我试着按建议做,但仍然得到同样的错误。

  • 我试图在配置单元中执行select*from db.abc操作,此配置单元表是使用spark加载的 “它不工作”显示错误: 错误:java.io.IOException:java.lang.IllegalArgumentException:bucketId超出范围:-1(状态=,代码=0) 我需要在spark-submit或shell中添加任何属性吗?或者使用spark读取此hiv e表的另一种方