首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark scala输入/输出目录

Spark scala输入/输出目录
EN

Stack Overflow用户
提问于 2016-04-29 20:55:38
回答 1查看 314关注 0票数 0

我是Spark/Scala编程的新手,我能够使用maven进行设置,并能够运行示例字数统计程序。

我这里有两个问题,这两个问题都是在spark环境/ Windows本地运行的:1. scala程序是如何识别输入的。2.如何将输出写入文本文件。

以下是我的代码

代码语言:javascript
复制
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中并尝试运行它时,当我将data.txt放在/home/root1/softs/spark-1.6.1/bin或工作区中的项目文件夹中时,它正在尝试接受输入。

类似地,当我尝试使用counts.saveAsTextFile("file:/home/root1/Avinash/output"),写入输出时,它不会写入,而是在线程"main“java.io.IOException: No FileSystem for scheme: D中抛出错误作为异常。

请帮我解决这个问题!!。

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 00:14:00

您应该在文件上使用/。这是一个例子

代码语言:javascript
复制
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")

如果文件很大,则每次对RDD执行操作时都使用缓存来避免计算

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36938944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档