从RDD中的List中提取元素

时间:2015-06-22 14:19:33

标签: scala apache-spark

我有一个表格

的RDD
RDD[(String, String, String)]

我应用了一个从第三个元素中提取数据并创建表格的RDD的函数

RDD[(String, String, List[String])]

我希望生成一个最终的RDD,其中List的每个元素都映射到前两个元素。像,

RDD[(String, String, String)] = RDD[(String, String, List[String])].map(case(x, y, z) => (x, y, z._1), (x, y, z._2), ....))

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:2)

我相信这应该做你正在寻找的事情

[MaxItems(5)]
public virtual ICollection<OtherPart> OtherParts { get; set; }

答案 1 :(得分:-1)

您似乎在寻找flatMap或flatMapValues(取决于您的转换):

def flatMap[U](f: (T) ⇒ TraversableOnce[U])(implicit arg0: ClassTag[U]): RDD[U]

flatMap:首先将一个函数应用于此RDD的所有元素,然后展平结果,从而返回一个新的RDD。

def flatMapValues[U](f: (V) ⇒ TraversableOnce[U]): RDD[(K, U)]

flatMapValues:通过flatMap函数传递键值对RDD中的每个值,而不更改键;这也保留了原始RDD的分区。