我有一个非常简单的应用程序,尝试使用 Spark 从 /src/main/resources 读取 orc 文件。我不断收到此错误:
无法实例化具有 Hive 支持的 SparkSession,因为找不到 Hive 类。
我尝试添加依赖项
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.0.0</version>
</dependency>
正如这里推荐的:无法实例化具有 Hive 支持的 SparkSession,因为找不到 Hive 类 https://stackoverflow.com/questions/39444493/unable-to-instantiate-sparksession-with-hive-support-because-hive-classes-are-no
但是,无论我添加什么,我仍然收到此错误。
我通过 NetBeans IDE 在本地 Windows 计算机上运行它。
my code:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.*;
public class Main {
public static void main(String[] args) {
SparkSession spark = SparkSession
.builder()
.enableHiveSupport()
.appName("Java Spark SQL basic example")
.getOrCreate();
Dataset<Row> df = spark.read().orc("/src/main/resources/testdir");
spark.close();
}
}
如果你正在跑步IDE
,我建议使用.master("local")
in you SparkSession
目的。
接下来重要的一点是spark-hive的版本应该与spark-core和spark-sql版本匹配。为了安全起见,您可以将依赖定义为
<properties>
<spark.version>2.0.0</spark.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)