java - 创建 SQLContext 对象时,构造函数 HiveContext(JavaSparkContext) 出现未定义错误

标签 java apache-spark apache-spark-sql spark-hive

我正在尝试使用 JavaSparkContext 对象创建 SQL 上下文对象,因为它的参数如下:

SparkConf sparkConf=new SparkConf().setMaster("local").setAppName("Example");
JavaSparkContext sc=new JavaSparkContext(sparkConf);
SQLContext sqlctx=new HiveContext(sc);

Eclipse 抛出错误:

The constructor HiveContext(JavaSparkContext) is undefined

但是我在互联网上查找的所有示例(包括文档)都使用 JavaSparkContext 作为参数。我错过了什么吗?

Maven 依赖项:

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>1.2.0</version>
<scope>provided</scope>
</dependency>

最佳答案

spark_hive 不应该依赖 Spark 2.2 吗?

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>

如果您使用 Spark 2.2,我认为 HiveContext 已被弃用,您应该只使用 SparkSession 作为查询和计算的入口点:

Upgrading From Spark SQL 1.6 to 2.0

SparkSession is now the new entry point of Spark that replaces the old SQLContext and HiveContext. Note that the old SQLContext and HiveContext are kept for backward compatibility. A new catalog interface is accessible from SparkSession - existing API on databases and tables access such as listTables, createExternalTable, dropTempView, cacheTable are moved here.

关于java - 创建 SQLContext 对象时,构造函数 HiveContext(JavaSparkContext) 出现未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46002529/

相关文章:

java - 创建库并使用 sbt 进行测试时设置 scala 断点

json - Postgresql JSONB 数据上的 Spark SQL

scala - 如何在 spark-sql 中使用 "not rlike"?

apache-spark - 如何将DataFrame的Spark sql表达式中的空值写入数据库表? (非法参数异常 : Can't get JDBC type for null)

java - PDFBox : Extraction of data from table

java - 高效地将多个大型 xml 文件合并为一个文件

java - 使用 jsp : any better approaches? 从 POST 表单中提取 100 多个输入数据

hadoop - Spark 插入 HBase 慢

azure - 无法对损坏的 Lake 数据库表执行任何操作

apache-spark - Apache Spark 从时间戳列中减去天数