Java-如何将Iterable转换为JavaPairdd

Java-如何将Iterable转换为JavaPairdd,java,scala,apache-spark,rdd,spark-redis,Java,Scala,Apache Spark,Rdd,Spark Redis,我有一个javapairdd(String,Iterable[(String,String)]),我想把它转换成一个javapairdd(String,RDD[String,String),这样我就可以对内部javapairdd使用reduceByKey函数 在这个例子中,我有一个javapairdd,其中key是一个特定的型号,value是一个元组项目编号和该项目价格的Iterable 以下是JavaPairRDD的一个示例: ("Model1", Iterable(("1234", "55.

我有一个javapairdd(String,Iterable[(String,String)]),我想把它转换成一个javapairdd(String,RDD[String,String),这样我就可以对内部javapairdd使用reduceByKey函数

在这个例子中,我有一个javapairdd,其中key是一个特定的型号,value是一个元组项目编号和该项目价格的Iterable

以下是JavaPairRDD的一个示例:

("Model1", Iterable(("1234", "55.00"), ("5678", "52.50"), ("91011", "551.65"))
("Model2", Iterable(("6546", "55.00"), ("6798", "1255.05"), ("98797", "500.65"))
应用reduceByKey函数后,我希望结果如下所示:

("Model1", JavaPairRDD(("1234", "55.00"), ("5678", "52.50"), ("91011", "551.65"))
("Model2", JavaPairRDD(("6546", "55.00"), ("6798", "1255.05"), ("98797", "500.65"))
一个非常类似的线程使用以下Scala代码转换此RDD:

在Java中有类似的方法吗


谢谢你的帮助。

我想问题是-你不认识scala?基本上,您需要用Java编写相同的代码。同样的RDD转换。@VladislavVarslavans我意识到这是我的问题。我对scala的了解还不足以将这些转换转换为Java,或者是否有可能以同样的方式进行转换。
("To", List(("Tom",50),("Tod","30"),("Tom",70),("Tod","25"),("Tod",15))
("Ja", List(("Jack",50),("James","30"),("Jane",70),("James","25"),("Jasper",15))
rdd.flatMap{case(key, list) => list.map(item => ((key,item._1), item._2))}
   .reduceByKey(_+_)
   .map{case((key,name),hours) => (key, List((name, hours)))}
   .reduceByKey(_++_)