Spark中RDD修改结构

Modified Structure of RDD in Spark

我是 spark/scala 的新手。

val First: RDD[((Short, String), (Int, Double, Int))]

这是RDD的结构。我想像下面这样修改这个结构:

val First: RDD[(Short, String , Int, Double, Int)]

因为我有另一个具有不同结构的 RDD,我想 UNION 这两个 RDD。 (UNION 操作中的结构必须相同)。

请给我一个选择。

只需映射您的数据,如下所示:

First.map{ case ( (x, y), (k, z, w) ) => (x, y, k, z, w) }

而且为了写这个map函数,你必须检查你的RDD的格式,((Short, String), (Int, Double, Int)),也就是我写的(x, y), (k, z, w),然后写你想要的格式=>.

的右侧

编辑评论:

As Map will iterate data one by one

仅在动作发生时应用转换,因此 map() 以分布式方式工作得非常好。每个分区都会在其数据中应用映射功能。

虽然这不是一个非常昂贵的操作,所以不要专注于此,专注于您的联接,这是繁重的操作。如果您的集群中有相应的资源,对于您的数据量,映射函数应该是便宜的东西。