需求
不同的key输出到不同的文件
txt文件
multiple.txt
中国;22 美国;4342 中国;123 日本;44 日本;6 美国;55 美国;43765 日本;786 日本;55
scala代码
import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat import org.apache.spark.{SparkConf, SparkContext} object Mutiple { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("phone-count").setMaster("local[*]") val sc = new SparkContext(conf) val input = "C://multiple.txt" val fileRDD = sc.textFile(input) val kvRDD = fileRDD.map(line => (line.split(";")(0), line.split(";")(1))) kvRDD.saveAsHadoopFile("C://out", classOf[String], classOf[String], classOf[RDDMultipleTextOutputFormat]) } } class RDDMultipleTextOutputFormat extends MultipleTextOutputFormat[Any, Any]{ override def generateFileNameForKeyValue(key: Any, value: Any, name: String): String = { //定义输出的文件名 key.asInstanceOf[String].split(" ")(0) + ".txt" } }