gpt4 book ai didi

scala - "Table or view not found"错误仅来自 spark-submit 而不是 spark-shell

转载 作者:行者123 更新时间:2023-12-02 14:48:01 25 4
gpt4 key购买 nike

代码逻辑很简单,从csv加载数据写入hive,hive表已经在default schema

CREATE TABLE datatable_01 (id INT, name STRING, ssn BIGINT, hours INT)

下面的代码片段

val csvDataPath = "user/me/csvData"
val spark = SparkSession.builder().config("spark.master", "local").getOrCreate()
var csvDF = spark.read.option("header","true").option("inferSchema", "true").csv(csvDataPath + "/result.csv").dropDuplicates()
csvDF.write.mode("overwrite").format("orc").option("header", "false").insertInto("default.datatable_01")

以上代码在 spark-shell

中运行良好
Spark version 2.3.0
Scala version 2.11.8

当通过 spark-submit 部署为 Scala 应用程序时就不是那么多了

<properties>
<spark.version>2.3.0</spark.version>
</properties>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
....
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.11</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDir>src/main/scala</sourceDir>
<jvmArgs>
<jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
</jvmArgs>
</configuration>
</plugin>

这里是强大的错误信息

19/08/27 08:50:49 ERROR QueryExecutionEventHandler: Action 'insertInto' execution failed 
org.apache.spark.sql.AnalysisException: Table or view not found: default.datatable_01;

我看到线程谈论使用不同版本的 Scala 构建应用程序导致的类似问题,但我认为这不是我的情况。然而,经过数小时的研究,我仍然找不到问题的原因。

最佳答案

尝试在使用 .enableHiveSupport() 构建 spark session 时启用 Hive 支持

如果这不起作用,还要将配置传递给您的 spark-submit 以使用目录实现 hive 而不是其默认的 in-memory

您可以使用 spark.catalog 进行调试以查看正在读取哪个目录。

希望这对您有所帮助!

关于scala - "Table or view not found"错误仅来自 spark-submit 而不是 spark-shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57697667/

25 4 0