2017-02-03 11 views
0

をSQLContext.load。スパークSQL:NoSuchMethodError:シンプルなスパークプログラムを実行しているとき、私はHDFSからCSVを読み込むしようとし、NoSuchMethodErrorを取得しています

エラー:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.sql.SQLContext.load(Ljava/lang/String;Lscala/collection/immutable/Map;)Lorg/apache/spark/sql/DataFrame; 

コード:

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

import org.apache.spark.sql.SQLContext 

object Averager{ 
     def main (args: Array[String]) { 
       val conf = new SparkConf().setAppName("Averager") 
       val sc = new SparkContext(conf) 

       val sqlContext = new SQLContext(sc) 

       val df = sqlContext.load("com.databricks.spark-csv", Map("path" -> "hdfs://hadoop:9000/file.csv", "header" -> "true")) 

       df.printSchema() 
     } 
} 

そして、私のproject.sbtファイル:

name := "Averager" 
version := "1.0" 
scalaVersion := "2.10.5" 
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0" 
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.6.0" 
libraryDependencies += "com.databricks" % "spark-csv_2.10" % "1.5.0" 

これは、SBTパッケージと罰金コンパイルが、実行すると、それが失敗しましたそのエラーを表示します。

ありがとうございます。スパーク2.xの以降

+0

互換性のないバージョンを使用しているかどうかは疑問です。ここにあなたのスパークを貼り付けることができます –

+0

@RamGhadiyaram私は 'spark-submit --master = local [*] file.jar'をやっています。 – cogm

+0

私は実際にScala 2.11を使用していたようで、私の全体のsbtファイルはゴミでした。私はそれが2.11がすべてのビルドが、今、私はこのエラーを取得使用するように更新火花CSV:スレッド「メイン」にjava.lang.ClassNotFoundExceptionで '例外:com.databricks.spark-CSV:データソースが見つかりませんでした。 http:// spark.apache.org/third-party-projects.html'でパッケージを見つけてください。 – cogm

答えて

0

は、火花CSVパッケージがすでにスパークに含まれています。

あなただけ行うことができるはず:

ヴァルDF = spark.read.option( "ヘッダ"、 "真")CSV( "file.csvになり")

を使用している場合。スパーク1.6.xのは、SQLContextにはloadメソッドがありません、あなたは()の読み取りに使用する必要があります。

ヴァルDF = sqlContext.read.format( "com.databricks.spark.csvを")...

希望に役立ちます。

関連する問題