如何在Spark-scala中将Iterable [String]保存到hdfs

Anh*_*ata 2 hadoop scala mapreduce apache-spark rdd

val ordersRDD = sc.textFile("/user/cloudera/sqoop_import/orders");
val ordersRDDStatus = ordersRDD.map( rec => (rec.split(",")(3), 1));
val countOrdersStatus = ordersRDDStatus.countByKey();
val output = countOrdersStatus.map(input => input._1 + "\t" + input._2);
Run Code Online (Sandbox Code Playgroud)

如何将Iterable [String]的输出保存到spark-scala中的hdfs。可迭代[String]

注意:输出不是RDD(我不能使用output.saveAsTextFile(“ hdfs-path”)

mar*_*ios 6

一种方法是只编写一个简单的HDFS文件(与在香草Scala或Java中执行的方法相同)。这与Spark无关。

另一种方法是将您转换output为RDD并保存。

val output = countOrdersStatus.map(input => input._1 + "\t" + input._2)
sc.makeRDD(output.toList).saveAsTextFile("hdfs-path")
Run Code Online (Sandbox Code Playgroud)