向/从RDD添加/选择字段

时间:2016-09-27 22:34:25

标签: scala apache-spark rdd

我有一个RDD可以说dataRdd字段有timestampurl,...

我想创建一个新的RDD,其中包含来自此dataRdd的几个字段。

以下代码段会创建新的RDD,其中timestampURL被视为值而不是字段/列名称:

var fewfieldsRDD= dataRdd.map(r=> ( "timestamp" -> r.timestamp , "URL" ->   r.url))

但是,对于以下代码段,onetwothreearrivalSFO被视为列名。:

val numbers = Map("one" -> 1, "two" -> 2, "three" -> 3)
val airports = Map("arrival" -> "Otopeni", "SFO" -> "San Fran")
val numairRdd= sc.makeRDD(Seq(numbers, airports))

任何人都可以告诉我我做错了什么,如何创建一个新的Rdd,其字段名称映射到另一个Rdd的值?

1 个答案:

答案 0 :(得分:0)

您正在创建元组的RDD,而不是Map个对象。尝试:

var fewfieldsRDD= dataRdd.map(r=> Map( "timestamp" -> r.timestamp , "URL" ->   r.url))