使用java的RDD函数中的类型不匹配
我是新的火花,我做了一些简单的代码,但我得到的问题,而做的任务。我正在使用Java1.7SE和Spark2.0.1来完成一些任务 下面是我的代码使用java的RDD函数中的类型不匹配,java,apache-spark,Java,Apache Spark,我是新的火花,我做了一些简单的代码,但我得到的问题,而做的任务。我正在使用Java1.7SE和Spark2.0.1来完成一些任务 下面是我的代码 JavaRDD<String> newLine = line.flatMap(new FlatMapFunction<String, String>() { public List<String> call(String s) throws Exception { List<String
JavaRDD<String> newLine = line.flatMap(new FlatMapFunction<String, String>() {
public List<String> call(String s) throws Exception {
List<String> ret = new ArrayList<String>();
List<String> ls = Arrays.asList(s.split("\t"));
String values = ls.get(ls.size()-1);
List<String> value = Arrays.asList(values.split("\\|"));
for(int i=0;i<value.size();++i){
String ns = ls.get(0)+"\t"+ls.get(1)+"\t"+ls.get(2)+"\t"+ls.get(3)+"\t"+ls.get(4)+"\t"+ls.get(5);
ns = ns + "\t" + value.get(i);
ret.add(ns);
}
return ret;
}
});
JavaRDD newLine=line.flatMap(新的flatMap函数(){
公共列表调用(字符串s)引发异常{
List ret=new ArrayList();
List ls=Arrays.asList(s.split(“\t”);
字符串值=ls.get(ls.size()-1);
列表值=Arrays.asList(values.split(“\\\\”);
对于(int i=0;i它应该在call()返回类型中返回Iterator
notList
JavaRDD<String> newLine = line.flatMap(new FlatMapFunction<String, String>() {
public Iterator<String> call(String s) throws Exception {
List<String> ret = new ArrayList<String>();
List<String> ls = Arrays.asList(s.split("\t"));
String values = ls.get(ls.size()-1);
List<String> value = Arrays.asList(values.split("\\|"));
for(int i=0;i<value.size();++i){
String ns = ls.get(0)+"\t"+ls.get(1)+"\t"+ls.get(2)+"\t"+ls.get(3)+"\t"+ls.get(4)+"\t"+ls.get(5);
ns = ns + "\t" + value.get(i);
ret.add(ns);
}
return ret.iterator();
}
});
JavaRDD newLine=line.flatMap(新的flatMap函数(){
公共迭代器调用(字符串s)引发异常{
List ret=new ArrayList();
List ls=Arrays.asList(s.split(“\t”);
字符串值=ls.get(ls.size()-1);
列表值=Arrays.asList(values.split(“\\\\”);
对于(int i=0;我认为它应该在call()中返回Iterator
而不是List
返回类型。您不需要向flatmate函数添加一个与call
方法相等的返回类型吗?
JavaRDD<String> newLine = line.flatMap(new FlatMapFunction<String, String>() {
public Iterator<String> call(String s) throws Exception {
List<String> ret = new ArrayList<String>();
List<String> ls = Arrays.asList(s.split("\t"));
String values = ls.get(ls.size()-1);
List<String> value = Arrays.asList(values.split("\\|"));
for(int i=0;i<value.size();++i){
String ns = ls.get(0)+"\t"+ls.get(1)+"\t"+ls.get(2)+"\t"+ls.get(3)+"\t"+ls.get(4)+"\t"+ls.get(5);
ns = ns + "\t" + value.get(i);
ret.add(ns);
}
return ret.iterator();
}
});