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

How to save Iterable[String] to hdfs in spark-scala

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);

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

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

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

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

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