我的输入是字符串的集合,说:
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].
但是它是空的。有人可以帮我吗。
最佳答案
Spark的功能更强大,因此无法更新变量。*您应使用filter
的输出并调用collect
。
另外,如果要保留项目,则需要返回true。看来您已经倒退了。
*对变量封闭的副本将复制给每个工人。因此,更新仅是本地工作副本。