2016-04-29 8 views
0

Spark/Scala Programmingの新機能です。mavenを使用してセットアップを実行でき、サンプル数カウントプログラムを実行できます。spark scala入出力ディレクトリ

スパーク環境で実行する場合と、Windowsで実行する場合の両方について、ここで2つの質問があります。 1.スカラプログラムが入力を識別する方法。 2.出力をテキストファイルに書き込む方法。私は、ファイル内のファイルを配置するとここで

は私のコード

import org.apache.spark.SparkConf 
import org.apache.spark.SparkContext 
import org.apache.spark.rdd.RDD.rddToPairRDDFunctions 
object WordCount { 
def main(args: Array[String]) = { 

//Start the Spark context 
val conf = new SparkConf() 
    .setAppName("WordCount") 
    .setMaster("local") 
val sc = new SparkContext(conf) 

//Read some example file to a test RDD 
val textFile = sc.textFile("file:/home/root1/Avinash/data.txt") 

val counts = textFile.flatMap(line => line.split(" ")) 
      .map(word => (word, 1)) 
      .reduceByKey(_ + _) 
      counts.foreach(println) 
      counts.collect() 
    counts.saveAsTextFile("file:/home/root1/Avinash/output") 

} 

}

です:/home/root1/Avinash/data.txt、それを実行しようと、私が置いたときにwork.Onlyをdidntの/home/root1/softs/spark-1.6.1/bin内のdata.txtか、入力を取得しようとしているワークスペース内のプロジェクトフォルダ内にあります。私はcounts.saveAsTextFile(「ファイル:/ホーム/ ROOT1 /のAvinash /出力」)を使用して出力への書き込みしようとしていたときに

同様に、「それは書いていないし、代わりにそれはスレッドで 例外としてエラーを投げていますメイン "java.io.IOException:Scheme:DのFileSystemはありません

私はこの問題を解決するのを手伝ってください!!

答えて

2

ファイルで///を使用するとします。ファイルが大きい

であれば計算にあなたがRDD上のアクションを行っているすべての時間を避けるために、この例で

val textFile = sc.textFile("file:///home/root1/Avinash/data.txt") 

val counts = textFile.flatMap(line => line.split(" ")) 
      .map(word => (word, 1)) 
      .reduceByKey(_ + _).cache() 

      counts.foreach(println) 
      //counts.collect() 
    counts.saveAsTextFile("file:///home/root1/Avinash/output") 

使用キャッシュ

関連する問題