2017-07-17 4 views
3

sparkを使用して/ src/main/resourcesからorcファイルを読み込もうとする非常に簡単なアプリケーションがあります。私はこのエラーを取得しておいてください。enableHiveSupportがJavaのスパークコードでエラーをスローする

Unable to instantiate SparkSession with Hive support because Hive classes are not found.

ここで推奨されているように私は、依存関係に

<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-hive_2.11</artifactId> 
<version>2.0.0</version> 
</dependency> 

を追加しようとしている:Unable to instantiate SparkSession with Hive support because Hive classes are not found

しかし、関係なく、私が追加したものを、私はまだ、このエラーを取得していません。

NetBeans IDEを使用してローカルのWindowsマシンで実行しています。

私のコード:

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(); 
    } 
} 
+0

NetBeans IDEをしばらくお待ちください( 'sbt package'など)と' spark-submit'を使ってパッケージをビルドできますか? SpekではなくNetbeans IDEの問題のように見えます。 –

答えて

1

あなたはIDEで実行している場合、私はあなたSparkSessionオブジェクトに.master("local")を使用することをお勧めします。

次の重要な点は、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> 
+0

ありがとうございました! .master( "local")を追加すると、そのトリックはやってしまいました!! –

+0

@ M.Ukあなたの問題が解決したことを嬉しく思います。 :)答えがあなたを助けたならば、あなたもアップアップすることができます。 –

関連する問題