0
キーとして行の値を使用し、値として行自体を使用して、JavaPairRDDにcsvをロードします。現在、私はこのようにそれをやっている:スパーク行にあるキーでJavaPairRDDにcsvをロード
public class FactData implements Serializable{
public String key;
public int m1;
public int m2;
public int m3;
}
私は」:私はこのようなこれらの行を表すJavaオブジェクトを持っている
a,1,1,2
b,1,1,2
a,2,2,3
b,2,2,3
:
私はこのようなラインを持っているcsvファイルを持っています現在、このようなペアRDDになっているm:
JavaRDD<FactData> lines = sc.textFile("test.csv").map(line -> FactData.fromFileLine(line));
JavaPairRDD<String, Iterable<FactData>> groupBy = lines.groupBy(row -> row.getId());
しかし、もっと速く/より良い方法があるかどうか疑問に思っています この?次のようなもの:
JavaPairRDD<String,Iterable<FactData>> groupedLines = sc.textFile("test.csv").flatMapToPair(new PairFlatMapFunction<String, String, Iterable<FactData>>() {
@Override
public Iterator<Tuple2<String, Iterable<FactData>>> call(String s) throws Exception {
//WHAT GOES IN HERE?
return null;
}
});
これは私が(ファイルの最初の1) – jhnclvr
をcollectAsMap時に戻って1行のみが私を与えるように見えるなぜuがマップとして収集したいですか。? – Srini
JavaPairRDD> –
jhnclvr