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

标签 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

最佳答案

要从本地文件系统(从 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

  }
}

关于scala - spark-submit 无法访问本地文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176460/

相关文章:

java - cloudera vm oozieWorkflow java.lang.ClassNotFoundException

scala - 使用 Scala 在数据框中添加序列号列

scala - 在 ScalaTest 中处理 double

java - 为什么我的 Scala 命令式 map 创建片段比 Java 慢?

hadoop - Hadoop 有没有官方的 Docker 镜像?

sql - SPARK SQL LEFT JOIN 行数过多

java - 如何根据给定分区过滤 RDD?

使用 Akka 进行 Scala Testkit 单元测试

scala - '<-' 在 scala 中起什么作用?

hadoop - HIVE如何根据某些条件更新现有数据,如果不存在则插入新数据