本文介绍了如何将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:
推荐答案
您可以将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中的文本文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!