scala/spark 将 [String,List[String]] 映射到字符串对
scala/spark mapping [String,List[String]] to String pairs
我有一个结构为 RDD:[String A,List(Strings Bs)]
的 RDD 我想映射它以便得到一个 RDD:[String A,String B]
,这样列表中的每个元素都将与字符串 A 匹配。什么会是最有效的方法吗?
我目前正在使用 flatMapValues
,这是最有效的方法吗? (我有庞大的数据集)
rdd.flatMapValues(identity)
应该可以完成任务。
这应该是一种非常有效且简单的方法。
为了优化性能,您可以将其与使用 mapPartitions
的实现进行比较,并从两者中选择更好的一个。我不希望有很大的不同,因为在这两种情况下都需要创建包装器对象。
rdd.mapPartitions(iter => iter.flatMap(elem => elem._2.map(v => (elem._1,v)))
我有一个结构为 RDD:[String A,List(Strings Bs)]
的 RDD 我想映射它以便得到一个 RDD:[String A,String B]
,这样列表中的每个元素都将与字符串 A 匹配。什么会是最有效的方法吗?
我目前正在使用 flatMapValues
,这是最有效的方法吗? (我有庞大的数据集)
rdd.flatMapValues(identity)
应该可以完成任务。
这应该是一种非常有效且简单的方法。
为了优化性能,您可以将其与使用 mapPartitions
的实现进行比较,并从两者中选择更好的一个。我不希望有很大的不同,因为在这两种情况下都需要创建包装器对象。
rdd.mapPartitions(iter => iter.flatMap(elem => elem._2.map(v => (elem._1,v)))