xxx in ‘Anonymous class derived from xxx clashes with ‘call(T)‘ in xxx attempting to use incompati
生活随笔
收集整理的這篇文章主要介紹了
xxx in ‘Anonymous class derived from xxx clashes with ‘call(T)‘ in xxx attempting to use incompati
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
完整報錯如下:
'call(Tuple2<Long, Row>)' in 'Anonymous class derived from org.apache.spark.api.java.function.PairFlatMapFunction'
clashes with 'call(T)' in 'org.apache.spark.api.java.function.PairFlatMapFunction';
attempting to use incompatible return type
?
點擊PairFlatMapFunction源碼:
@FunctionalInterface public interface PairFlatMapFunction<T, K, V> extends Serializable {Iterator<Tuple2<K, V>> call(T t) throws Exception; }發現要求返回iterator
?
原因:
兩處不一致:
①return處與public后面的類型不一致。
②Tuple2<String,Row>應該改成Tuple2<String,Row>
?
解決方案如下:
private static PairFlatMapFunction<Tuple2<Long,Row>, String, Row>func7= new PairFlatMapFunction<Tuple2<Long,Row>, String, Row>() {private static final long serialVersionUID = 1L;public Iterable<Tuple2<String, Row>> call(Tuple2<Long, Row> tuple) throws Exception {Random random = new Random();List<Tuple2<String, Row>> list = new ArrayList<Tuple2<String, Row>>();for(int i = 0; i < 100; i++) {list.add(new Tuple2<String, Row>(i + "_" + tuple._1, tuple._2));}return list;} };改成:
private static PairFlatMapFunction<Tuple2<String,Row>, String, Row> func7 = new PairFlatMapFunction<Tuple2<String,Row>, String, Row>(){private static final long serialVersionUID = 1L; // @Overridepublic Iterator<Tuple2<String, Row>> call(Tuple2<String, Row> tuple) throws Exception {Random random = new Random();List<Tuple2<String, Row>> list = new ArrayList<Tuple2<String, Row>>();for(int i = 0; i < 100; i++){list.add(new Tuple2<String, Row>(i + "_" + tuple._1, tuple._2));}return list.iterator();}};?
?
總結
以上是生活随笔為你收集整理的xxx in ‘Anonymous class derived from xxx clashes with ‘call(T)‘ in xxx attempting to use incompati的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 塞尔之光射手技能 为什么游戏《塞尔达
- 下一篇: 单位脉冲信号与单位冲激信号的区别