it-swarm.com.ru

Ошибка при использовании контекста Hive в spark: объект Hive не является членом пакета org.Apache.spark.sql

Я пытаюсь создать Hive Context, который наследуется от SQLContext.

val sqlContext = new org.Apache.spark.sql.Hive.HiveContext(sc)

Я получаю следующую ошибку:

error: object Hive is not a member of package org.Apache.spark.sql
       val sqlContext = new org.Apache.spark.sql.Hive.HiveContext(sc)

Из автозаполнения я могу ясно видеть, что Hive не существует .. Есть идеи, как решить эту проблему? Это пример из доступной документации sparkSQL.

Спасибо

11
user1189851

Из-за зависимостей Hive он не компилируется в двоичный файл искры по умолчанию, поэтому вам нужно создать его самостоятельно. Цитата из сайта

Однако, поскольку Hive имеет большое количество зависимостей, он не включен в сборку Spark по умолчанию. Чтобы использовать Hive, вы должны сначала запустить sbt/sbt -Phive Assembly/assembly (или использовать -Phive для maven).

7
aaronman

Используя sbt: 

Вы должны включить spark-Hive в свои зависимости.

Для этого добавьте следующую строку в ваш файл .sbt:

libraryDependencies += "org.Apache.spark" %% "spark-Hive" % "1.5.0"

15
Memos

Вот пример зависимости maven

<dependency>
        <groupId>org.Apache.spark</groupId>
        <artifactId>spark-Hive_${scala.tools.version}</artifactId>
        <version>${spark.version}</version>
</dependency>

--- для тех, кто должен знать, как установить свойства в POM, ниже приведен пример

<properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <encoding>UTF-8</encoding>
        <scala.tools.version>2.10</scala.tools.version>
        <scala.version>2.10.4</scala.version>
        <spark.version>1.5.0</spark.version>
</properties>
2
Partha Mishra

Для проектов Maven, после добавления зависимости Hive, просто нажмите «Обновить проект», щелкнув правой кнопкой мыши ваш проект -> Maven -> Обновить проект. Это должно решить проблему.

0
Vikramjit