我的输入是字符串的集合,Say:
Chicago
Washington
Seattle
San Francisco
Chicago
Newyork
Dallas
我有以下代码,用于过滤掉某些值:
List<String> filteredValues = new ArrayList<String>();
JavaRDD<String> filteredOutput = inputText.filter(line -> {
if(line.toLowerCase().contains("chicago")) {
filteredValues.add(line);
return false;
}
return true;
});
System.out.println("Filtered values are" + filteredValues.toString());
}
}
我希望“filteredValues”列表包含[Chicago, Chicago].
但它空洞。有人可以帮我吗。
答案 0 :(得分:1)
Spark功能更强大,因此更新变量不会起作用。*您应该使用filter
的输出并调用collect
。
此外,如果要保留项目,则需要返回true。看来你已经倒退了。
*关闭变量对每个工人都是COPIED。所以更新只是工作者本地副本。