我有一个类型字符串列表,其中包含表单中的多个项目[Cid:0001,Jid:439,java,unit testing][Cid:0001,Jid:439,java,jsp,xml,javascript,servlet,html][Cid:0001,Jid:245,ui development,jquery,javascript,html,ajax][Cid:0002,Jid:312,team,goals,territory]等等由于有很多项目,我需要根据Cid和Jid对项目进行分组。例如,上面的前两行应该是一个组,因为它具有相同的Cid和Jid。我需要将每个组一个接一个地传递给一个采用JavaRDD格式作为输入的算法。每个列表都使用spark中的parallelize函数进行并行化。List<List<String>> mainList = new ArrayList<>();for (Resume r : resumes) { List<String> subList = new ArrayList<>(); for (String temp : hashSet) { if (temp.equalsIgnoreCase(r.getJid() + r.getCid())) { subList.add(r.toString()); mainList.add(subList);
2 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
这是我的代码片段:
List<List<String>> mainList = new ArrayList<>(); List<Resume> resumes = new ArrayList<Resume>(); Map<String,List<String>> map = new HashMap<String,List<String>>(); for (Resume r : resumes) { List<String> subList = new ArrayList<>(); subList.add(r.toString()); if(map.get("JID"+r.getJid()+"CID"+r.getCid())!=null) { subList.addAll(map.get("JID"+r.getJid()+"CID"+r.getCid())); } map.put("JID"+r.getJid()+"CID"+r.getCid(),subList); mainList.add(subList); }
我曾经 "JID"+r.getJid()+"CID"+r.getCid()
考虑过这种情况
JId:212和Cid:456
JId:2124和Cid:56
因为它们不应该组合在一起。添加密钥r.getJid() + r.getCid()
无法帮助您考虑这种情况
添加回答
举报
0/150
提交
取消