Spark/Scalaを使用してHDFSのファイルを読み書きする方法を学習しています。 HDFSファイルに書き込めません。ファイルは作成されていますが、空です。 ファイルに書き込むループを作成する方法がわかりません。Spark/Scalaを使用してHDFSファイルの繰り返し書き込みを使用する
コードは次のとおりです。
import scala.collection.immutable.Map
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
// Read the adult CSV file
val logFile = "hdfs://zobbi01:9000/input/adult.csv"
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
//val logFile = sc.textFile("hdfs://zobbi01:9000/input/adult.csv")
val headerAndRows = logData.map(line => line.split(",").map(_.trim))
val header = headerAndRows.first
val data = headerAndRows.filter(_(0) != header(0))
val maps = data.map(splits => header.zip(splits).toMap)
val result = maps.filter(map => map("AGE") != "23")
result.foreach{
result.saveAsTextFile("hdfs://zobbi01:9000/input/test2.txt")
}
私が交換する場合: result.foreach{println}
を次に、それは働きます!
けど(saveAsTextFile)の方法を使用した場合、エラーメッセージが
<console>:76: error: type mismatch;
found : Unit
required: scala.collection.immutable.Map[String,String] => Unit
result.saveAsTextFile("hdfs://zobbi01:9000/input/test2.txt")
としてスローされるすべてのヘルプしてください。
これが役に立った場合、これを回答として受け入れることができますか? –