【问题标题】:The constructor HiveContext(JavaSparkContext) is undefined error while create SQLContext object创建 SQLContext 对象时,构造函数 HiveContext(JavaSparkContext) 未定义错误
【发布时间】:2017-09-01 23:09:13
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

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


    【解决方案1】:

    您不应该对 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 作为查询和计算的入口点:

    从 Spark SQL 1.6 升级到 2.0

    SparkSession 现在是新条目 替换旧的 SQLContext 和 HiveContext 的 Spark 点。笔记 旧的 SQLContext 和 HiveContext 保留为向后 兼容性。可以从 SparkSession 访问新的目录界面 - 现有的关于数据库和表访问的 API,如 listTables、createExternalTable、dropTempView、cacheTable 移至此处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2019-09-10
      • 2020-02-28
      相关资源
      最近更新 更多