2017-01-05 10 views
0

新生児の火花とスケーラー。私はintellij-ideaで非常に簡単なスパークプログラムを実行しようとしています。それはやっているすべては、次のとおりです。spark scalaはjava.lang.classのコーデックを見つけることができません

  1. 接続のMongoDBデータベースに特定のコレクションへ
  2. ロードデータ
  3. 最初のレコードを印刷します。

それは素晴らしい仕事をしていたが、今ではエラーを投げている:ここでは

org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class java.lang.Class.

は私のコードです:ここでは

import org.apache.spark.{SparkConf, SparkContext} 
import com.mongodb.spark._ 
import com.mongodb.spark.rdd.MongoRDD 
import org.bson.Document 
import com.mongodb.spark.config._ 
import org.apache.spark.sql.SQLContext 
import com.mongodb.spark.sql._ 
import scala.reflect.runtime.universe._ 

object Analytics1 { 
    def main(args: Array[String]) { 
val conf = new SparkConf().setAppName("Analytics1").setMaster("local"). 
     set("spark.mongodb.input.uri","mongodb://192.168.56.1:27017/events.entEvent") 
     .set("spark.mongodb.output.uri", "mongodb://192.168.56.1:27017/events..entResult") 
val sc = new SparkContext(conf) 

val rdd = sc.loadFromMongoDB() 
println(rdd.first()) 

sc.stop() 

    } 
} 

は私.sbtです。私は、スパークの最新バージョンを使用している場合、それは数日前まで細かい仕事をしていた私は1.6.1を使用していますので、

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/DataFrame

このエラー、を投げるが、今では

を投げています

java.lang.class

エラーです。誰かが私が動くように助けてください。これは非常に基本的なものなので、誰かが助言を捨てて私をブロック解除することを期待しています。

ありがとうございました。

name := "Simple Project" 

version := "1.0" 

scalaVersion := "2.11.7" 

// libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1" 
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1" 

//libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "1.6.1" 
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "1.6.1" 

//libraryDependencies += "org.mongodb.spark" % "mongo-spark-connector_2.10" % "1.1.0" 
libraryDependencies += "org.mongodb.spark" %% "mongo-spark-connector" % "1.1.0" 

libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "1.2.1" 

libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.1" 

resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 
resolvers += "snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/ " 
resolvers += "releases" at "https://oss.sonatype.org/content/repositories/releases/" 
+0

人々を参照してくださいスワップラインをする上で

この問題は、以下のWanのコメントをすべてお読みください。 – Vamsi

答えて

1

libraryDependencies += "org.mongodb.spark" % "mongo-spark-connector_2.10" % "1.1.0"

あなたはScalaのバージョン2.10のためのMongoDB Connector for Sparkをロードしています。あなたのプロジェクトはmongo-scala-driverを含むScalaバージョン2.11.7を使用していますが、

libraryDependencies += "org.mongodb.spark" % "mongo-spark-connector_2.11" % "1.1.0" 

また、二重%を指定することにより、与えられたScalaのバージョンを使用するショートカットを使用します:

libraryDependencies += "org.mongodb.spark" %% "mongo-spark-connector" % "1.1.0" 

は、上の答えを探して、よりおよそSBT dependencies: Getting the right Scala version

+0

ありがとうございました。私は両方のオプションを試みたが成功しなかった。私は%%のショートカットを使ってmllib依存関係を試してみました。それも助けにはならなかった。私の推測では、これは私が把握することができない依存関係や輸入と関係があります。 – Vamsi

+0

問題は 'println'だと思います。私が 'println(rdd.first())'の代わりに 'rdd.toDF()。show(10)'を使うとします。できます。しかし、データはDFとして表示されます。しかし、私はそれがRDD出力のようにしたい。どのようにこれを解決するための任意のアイデア? – Vamsi

+0

エラーメッセージなどで 'problem'を記述する必要があります。' codec java.lang.class'がなくなりましたが、 'println'で別のエラーが発生していますか?小さなスクリプトを作成し、テストしてデバッグします。エラーメッセージと小さな再現可能なスクリプトを投稿してください。 –

関連する問題