web-dev-qa-db-ja.com

Scala Spark

ソースから 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ソースから実行しているため、クラスパスの問題である可能性がありますか?しかし、必要な依存関係は私のクラスパスにあります。

24
blue-sky

暗黙の変換をSparkContextからインポートする必要があります。

import org.Apache.spark.SparkContext._

彼らは 'pimp up my library'パターンを使用して、特定のタイプのRDDにメソッドを追加します。興味があれば、 SparkContext:1296 を参照してください

35
maasg

実際には、PairRDDFunctionsクラスにあります。 PairRDDFunctionsは、暗黙の変換を通じて(キー、値)ペアのRDDで使用可能な追加の関数を含むクラスです。

https://spark.Apache.org/docs/2.1.0/api/scala/index.html#org.Apache.spark.rdd.PairRDDFunctions

0
Hongyang

ScalaIDEでMavenを使用している場合は、依存関係をスパークストリーミングバージョン1.2からバージョン1.3に更新することで問題を解決しました。

0
Ws576