re-setting 构建路径后不接受迭代器<String>
Iterator<String> not accepted after re-setting the build path
我有一个 Spark 流式应用程序并且我有 re-setted 构建路径,以使其更清晰。
在我 re-imported 所有 jar 文件之后,我得到了这个我以前从未遇到过的错误:
这怎么可能?我该如何解决?
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();
}
};
在 Spark 1.x 中,FlatMapFunction
的 call
的 return 类型是 Iterable
。
在 Spark 2.x 中,FlatMapFunction
的 call
的 return 类型已更改为 Iterator
。
似乎当您重置构建路径时,您将其更改为指向 spark 1.x 而不是 2.x,从而使所有平面图函数无效。
我有一个 Spark 流式应用程序并且我有 re-setted 构建路径,以使其更清晰。
在我 re-imported 所有 jar 文件之后,我得到了这个我以前从未遇到过的错误:
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();
}
};
在 Spark 1.x 中,FlatMapFunction
的 call
的 return 类型是 Iterable
。
在 Spark 2.x 中,FlatMapFunction
的 call
的 return 类型已更改为 Iterator
。
似乎当您重置构建路径时,您将其更改为指向 spark 1.x 而不是 2.x,从而使所有平面图函数无效。