sbt package
の実行だけで罰金、しかし後、私はエラーを取得する:ここでApacheのスパーク:java.lang.NoSuchMethodErrorの.rddToPairRDDFunctions
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.SparkContext$.rddToPairRDDFunctions(Lorg/apache/spark/rdd/RDD;Lscala/reflect/ClassTag;Lscala/reflect/ClassTag;Lscala/math/Ordering;)Lorg/apache/spark/rdd/PairRDDFunctions; at SmokeStack$.main(SmokeStack.scala:46) at SmokeStack.main(SmokeStack.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:736) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
は、問題のある行である:
val sigCounts = rowData.map(row => (row("Signature"), 1)).countByKey()
rowData
はRDDですMap [String、String] 「署名」キーは地図のすべての項目に存在します。
これはビルドの問題である可能性があります。以下は私のsbtファイルです:
name := "Example1"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"
scalacOptions ++= Seq("-feature")
私はScalaを新しくしていますが、おそらくインポートが正しくない可能性がありますか?私が持っている:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import scala.io.Source
あなたのコンパイルとランタイムのバージョンが一致しない問題を解決しました。 – maasg
これはかなり古いスパークバージョンです。少し新しいものを使用してみてください。上で述べたように、ランタイムとコンパイル時のバージョンのsparkは一致しません。 – JiriS
@maasg私はコンパイルとランタイムSparkのバージョンを一致させて変更しました。私はそれを受け入れることができるように答えとしてこれを置くことができますか? – BlackSheep