Spark-submit无法访问本地文件系统

时间:2016-12-16 02:39:34

标签: scala hadoop apache-spark

第一次count()方法调用时,Scala代码文件非常简单。

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

2 个答案:

答案 0 :(得分: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

  }
}

答案 1 :(得分:0)

  

val sc = new SparkContext(new SparkConf()。setAppName(" Spark File   计数"))setMaster("本地[8]&#34)

可能有帮助