如何使用scala将操作的结果存储在apache spark中

时间:2015-12-22 09:52:45

标签: scala hadoop apache-spark

如何在apache Spark Scala中存储如下操作生成的结果:count在输出目录中?

    val countval= data.map((_,"")).reduceByKey((_+_)).count

以下命令不起作用,因为计数未存储为RDD:

    countval.saveAsTextFile("OUTPUT LOCATION")

有没有办法将countval存储到local / hdfs位置?

2 个答案:

答案 0 :(得分:1)

致电count后,它不再是RDD。

统计只是Long,而且没有saveAsTextFile方法。

如果你想存储你的countval,你必须像任何其他长字符串一样存储...

答案 1 :(得分:1)

@szefuf说的是正确的,count之后你有一个Long你可以保存任何你想要的方式。 如果您想将其保存为RDD .saveAsTextFile(),则必须将其转换为RDD:

 sc.parallelize(Seq(countval)).saveAsTextFile("/file/location")

SparkContext中的parallelize方法将值集合转换为RDD,因此您需要先将单个值转换为单个元素序列。然后你可以保存它。