scala RDD数据保存到本地txt文件中

今天在Windows上跑Scala词频统计的时候,发现RDD文件并不能直接保存到本地的txt文件中,如果使用saveAsTextFile方法的话,会将RDD数据以文件夹且数据不能直接使用

但是使用其他的方法又比较麻烦,对新手很不友好,这里教大家一个小方法

将RDD数据使用toArray()转为数组即可遍历写入本地文件了,如果有更好的方法,私信笔者,毕竟该方法Scala官方已经不推荐使用了。

代码如下:

package day01

import java.io.PrintWriter
import java.io.File

import org.apache.spark.{SparkConf, SparkContext}

object countWord_2 {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("countWord_2").setMaster("local")
    val sc = new SparkContext(conf)
    System.setProperty("hadoop.home.dir", "E:\\school_Study\\spark\\hadoop")
    val input = "F:\\score.txt"

    val count = sc.textFile(input).flatMap(x => x.split(" ")).map(x => (x, 1)).reduceByKey((x, y) => x + y)
    //文件写入
    val writer = new PrintWriter(new File("res.txt"))

    count.foreach(x => println(String.valueOf(x._1 + " " + x._2)))
    val tuples = count.toArray()
    for (elem <- tuples) {
      writer.write(elem._1 + " " + elem._2 + "\n")
    }
    writer.close()
  }
}

使用的Scala版本为:scala-2.10.5

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

China@V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值