我有一个RDD可以说dataRdd
字段有timestamp
,url
,...
我想创建一个新的RDD,其中包含来自此dataRdd
的几个字段。
以下代码段会创建新的RDD,其中timestamp
和URL
被视为值而不是字段/列名称:
var fewfieldsRDD= dataRdd.map(r=> ( "timestamp" -> r.timestamp , "URL" -> r.url))
但是,对于以下代码段,one
,two
,three
,arrival
和SFO
被视为列名。:
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的值?
答案 0 :(得分:0)
您正在创建元组的RDD,而不是Map
个对象。尝试:
var fewfieldsRDD= dataRdd.map(r=> Map( "timestamp" -> r.timestamp , "URL" -> r.url))