Java,如何在Spark中收集筛选出的值

Java,如何在Spark中收集筛选出的值,java,filter,apache-spark,Java,Filter,Apache Spark,我的输入是字符串的集合,例如: Chicago Washington Seattle San Francisco Chicago Newyork Dallas 我有以下过滤掉某些值的代码: List<String> filteredValues = new ArrayList<String>(); JavaRDD<String> filteredOutput = inputText.filter(line -> {

我的输入是字符串的集合,例如:

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());
    }
}
List filteredValues=new ArrayList();
JavaRDD filteredOutput=inputText.filter(行->{
if(line.toLowerCase().contains(“芝加哥”)){
filteredValues.add(行);
返回false;
}
返回true;
});
System.out.println(“过滤值为”+filteredValues.toString());
}
}
我希望“filteredValues”列表包含
[芝加哥,芝加哥]。


但它是空的。有人能帮帮我吗

Spark功能更强大,因此更新变量不起作用。*您应该使用
过滤器的输出
并调用
收集

此外,如果要保留项目,则需要返回true。看来你把这个倒过来了


*闭合变量将复制到每个辅助对象。因此,更新仅为本地工作副本

是的,我做到了。以前的。其内容为除“芝加哥”以外的所有值。所以它成功了。但名单仍然是empty@Vikram在Spark中阅读这篇文章。在你尝试做的事情中有一个功能中断。谢谢你,贾斯汀。但是,按照你的建议,如果我打电话给收藏家(),我所知道的一切都是我所知道的[华盛顿,西雅图,旧金山,Newyork,达拉斯]。如何获取在此过程中过滤掉的值?假设我需要一个筛选出的值列表[Chicago,Chicago]。更新了我的答案。你的过滤器是落后的贾斯汀。。但我的要求是,我想把过滤的和未过滤的分开,并保存它们。一个是rdd格式,另一个是列表