2016-12-16 114 views
0

真正簡單的Scala代碼文件在第一個count()方法調用。Spark-submit無法訪問本地文件系統

def main(args: Array[String]) { 
    // create Spark context with Spark configuration 
    val sc = new SparkContext(new SparkConf().setAppName("Spark File Count")) 
    val fileList = recursiveListFiles(new File("C:/data")).filter(_.isFile).map(file => file.getName()) 
    val filesRDD = sc.parallelize(fileList) 
    val linesRDD = sc.textFile("file:///temp/dataset.txt") 
    val lines = linesRDD.count() 
    val files = filesRDD.count() 
    } 

我現在不想爲此設置HDFS安裝。如何配置Spark以使用本地文件系統?這適用於spark-shell

回答

1

要從本地文件系統(從Windows目錄)讀取文件,您需要使用下面的模式。

val fileRDD = sc.textFile("C:\\Users\\Sandeep\\Documents\\test\\test.txt"); 

請參閱下面的示例工作程序以從本地文件系統讀取數據。

package com.scala.example 
import org.apache.spark._ 

object Test extends Serializable { 
    val conf = new SparkConf().setAppName("read local file") 
    conf.set("spark.executor.memory", "100M") 
    conf.setMaster("local"); 

    val sc = new SparkContext(conf) 
    val input = "C:\\Users\\Sandeep\\Documents\\test\\test.txt" 

    def main(args: Array[String]): Unit = { 
    val fileRDD = sc.textFile(input); 
    val counts = fileRDD.flatMap(line => line.split(",")) 
     .map(word => (word, 1)) 
     .reduceByKey(_ + _) 

    counts.collect().foreach(println) 
    //Stop the Spark context 
    sc.stop 

    } 
} 
0

VAL SC =新SparkContext(新SparkConf()。setAppName( 「星火文件 計數」))。setMaster( 「本地[8]」)

可能有助於