如何将Map结果保存到Spark Scala中的文本文件? [英] How to save a Map result to a text file in Spark scala?

查看:499
本文介绍了如何将Map结果保存到Spark Scala中的文本文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个:

val tokenFreq = reverseKey.countByKey
// tokenFreq: scala.collection.Map[String,Long] = Map(ABIGAIL -> 3,...

,我想将tokenFreq的结果保存到文本文件中.

and I want to save the tokenFreq's result into a text file.

我尝试使用saveAsTextFile,但是它说:

I tried to use saveAsTextFile, but it says:

错误:值saveAsTextFile不是scala.collection.Map [String,Long]的成员

error: value saveAsTextFile is not a member of scala.collection.Map[String,Long]

推荐答案

您可以将Map转换为RDD[(String, Long)],然后使用RDD api进行保存.

You can just convert the Map to an RDD[(String, Long)] then use the RDD api to save it.

val conf = new SparkConf().setAppName("TokenCounter").setMaster("local[4]")
val sc = new SparkContext(conf)

val tokenFreq = reverseKey.countByKey
sc.parallelize(tokenFreq.toSeq).saveAsTextFile("token_freq")

当然,这会转换您的数据结构,但是您可以在RDD中阅读它,然后将其收集为地图以重新获得快速查找.

Of course, this will convert your data structure, however you can read it this RDD then collect it as a map to regain quick lookup.

val tokenFreqMap = sc.textFile("token_freq").collectAsMap  

这篇关于如何将Map结果保存到Spark Scala中的文本文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆