我有一个关于在scala中映射Array的问题。我有以下数组:
Array[(scala.collection.immutable.Set[String], com.trends.City, com.trends.State)]
基本上,我想映射数组,使得Set中的每个String都有com.trends.City和State附加到它。结果应该类似于:
Array[(String, com.trends.City, com.trends.State)]
这就像flatMap,但我希望com.trends能够存在。
如果需要,我也可以将数组转换为RDD并使用flatMapValues,但我担心效率,有人能告诉我最好的方法吗?
答案 0 :(得分:3)
您可以在scala数组上使用flatMap,如下所示:
class City
class State
val array: Array[(scala.collection.immutable.Set[String], City, State)] = Array()
array.flatMap(p => p._1.map(q => (q, p._2, p._3)))