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

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。看来您已经倒退了。

*对变量封闭的副本将复制给每个工人。因此,更新仅是本地工作副本。

08-27 23:38