【发布时间】:2018-04-28 13:09:54
【问题描述】:
我有一个文本文件,例如:-
ID,Hour,Ratio
100775,0.0,1.0
100775,1.0,1.0560344797302321
100775,2.0,1.1333317975785973
100775,3.0,1.1886133302168074
100776,4.0,1.2824427440125867
我想要一个像MAP{Hour,MAP{ID,Ratio}} 这样的结构来存储为RDD。我能找到的最接近的结构是 JavaPairRDD。我尝试实现像JavaPairRDD{Hour,MAP{ID,Ratio}} 这样的结构,但是,这个结构提供lookup() 功能,它返回LIST{MAP{ID,RATIO}},这并不能解决我的用例,因为我基本上想要这样做
ratio = MAP.get(Hour).get(ID)
关于如何最好地完成这项工作的任何指示。
更新:-
在拉梅什的回答之后,我尝试了以下方法:-
JavaRDD<Map<String,Map<String,String>>> mapRDD = data.map(line -> line.split(",")).map(array-> Collections
.singletonMap(array[0],
Collections
.singletonMap
(array[1],array[2])));
但是,这里没有类似 lookup() 的功能,对吗?
【问题讨论】:
标签: java scala apache-spark collections rdd