在现有RDD中创建新记录

Fra*_*kie 2 apache-spark rdd

我试图在RDD中创建更多记录:

现在,我有一个RDD[(String, List(String))],内容是:

("str_1", List("sub_str_1", "sub_str_2"))  
("str_2", List("sub_str_3", "sub_str_4")) 
("str_3", List("sub_str_5", "sub_str_6"))
Run Code Online (Sandbox Code Playgroud)

我想把它转换为RDD[(String, String)]flatting list[String].
转换后,内容应该是

("str_1", "sub_str_1")
("str_1", "sub_str_2")
("str_2", "sub_str_3")
("str_2", "sub_str_4")
("str_3", "sub_str_5")
("str_3", "sub_str_6")
Run Code Online (Sandbox Code Playgroud)

似乎可以应用于RDD的所有方法都无法增加记录数.我能做的就是将当前的转换为具有相同记录数的新RDD.

我的问题:有没有办法增加RDD中的记录数量?

Tim*_*Tim 5

使用flatMap.

rdd.flatMap { case (str, list) => list.map(elt => (str, elt)) }
Run Code Online (Sandbox Code Playgroud)