在我的hadoop代码中,我需要定义一个Arraylist,Mapper和Reducer都可以访问它。对于其他变量,我可以使用参数。但我不知道arrayList!我怎么能这样做?
答案 0 :(得分:2)
您可以使用conf.setStrings(name,values ...)将字符串数组作为参数传递
Configuration conf = getConf();
ArrayList<String> list = new ArrayList<String>();
String[] arr = list.toArray(new String[list.size()]);
conf.setStrings("my-array-list", arr);
在reducer和mapper的setup函数中,您可以重新创建ArrayList
ArrayList<String> list =
new ArrayList<String>(Arrays.asList(conf.getStrings("my-array-list")));