ソースから http://spark.Apache.org/docs/latest/quick-start.html#a-standalone-app-in-scala を実行しようとしています。
この行:
_val wordCounts = textFile.flatMap(line => line.split(" ")).map(Word => (Word, 1)).reduceByKey((a, b) => a + b)
_
エラーを投げている
_value reduceByKey is not a member of org.Apache.spark.rdd.RDD[(String, Int)]
val wordCounts = logData.flatMap(line => line.split(" ")).map(Word => (Word, 1)).reduceByKey((a, b) => a + b)
_
logData.flatMap(line => line.split(" ")).map(Word => (Word, 1))
はMappedRDDを返しますが、このタイプは見つかりません http://spark.Apache.org/docs/0.9.1/api/core/index.html#org.Apache.spark .rdd.RDD
私はこのコードをSparkソースから実行しているため、クラスパスの問題である可能性がありますか?しかし、必要な依存関係は私のクラスパスにあります。
暗黙の変換をSparkContext
からインポートする必要があります。
import org.Apache.spark.SparkContext._
彼らは 'pimp up my library'パターンを使用して、特定のタイプのRDDにメソッドを追加します。興味があれば、 SparkContext:1296 を参照してください
実際には、PairRDDFunctionsクラスにあります。 PairRDDFunctionsは、暗黙の変換を通じて(キー、値)ペアのRDDで使用可能な追加の関数を含むクラスです。
https://spark.Apache.org/docs/2.1.0/api/scala/index.html#org.Apache.spark.rdd.PairRDDFunctions
ScalaIDEでMavenを使用している場合は、依存関係をスパークストリーミングバージョン1.2からバージョン1.3に更新することで問題を解決しました。