我正在尝试在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"))
我希望通过展平RDD[(String, String)]
将其转换为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")
似乎可以应用于RDD的所有方法都无法增加记录数。我能做的就是将当前的转换为具有相同记录数的新RDD。
我的问题:有没有办法增加RDD中的记录数量?
答案 0 :(得分:5)
使用flatMap
。
rdd.flatMap { case (str, list) => list.map(elt => (str, elt)) }
答案 1 :(得分:1)
有一个特殊的转变:
rdd.flatMapValues(identity)