重新设置构建路径后,不接受迭代器<string>

时间:2017-06-14 14:43:47

标签: java apache-spark spark-streaming buildpath

我有一个Spark流媒体应用程序,我已经重新设置了构建路径,以使其更清洁。 在我重新导入所有jar文件后,我收到了此前我从未遇到过的错误: enter image description here 这怎么可能?我该如何解决这个问题?

static FlatMapFunction<Tuple2<String, String>, String> sentimentFunc = new FlatMapFunction<Tuple2<String, String>, String>(){
        private static final long serialVersionUID = 1L;


        @Override
        public Iterator<String> call(Tuple2<String, String> x) throws Exception {
            List<String> output = new ArrayList<String>();
            if(x._2==null){
                output.add("ERR");
                return output.iterator();
            }
            boolean like = false, sad = false, angry = false, hilarious = false, neutral = false;
            boolean [] sentiments = {like, angry, sad, hilarious, neutral};
            sentiments = checkEmojis(x, sentiments);
            if(checkSentiment(sentiments)){
                output.add(setSentiment(sentiments));
                return output.iterator();
            }

            sentiments = checkText(x, sentiments);
            output.add(setSentiment(sentiments));
            return output.iterator();
        }

  };

1 个答案:

答案 0 :(得分:2)

在Spark 1.x中,FlatMapFunctioncall的返回类型为Iterable

在Spark 2.x中,FlatMapFunctioncall的返回类型已更改为Iterator

似乎在重置构建路径时,您将其更改为指向spark 1.x而不是2.x,从而使所有flatmap函数无效。