2016-12-15 9 views
0

ファイル私はSparkContextを通じてCSVファイルをロードしようとしていますし、ロードした後、私はCSVファイルの必要な列上の任意のRDD操作を実行する必要があります。 私はcsvファイルを読み込み、JavaRDDから必要な列を取得できました。今私は、これらの列で任意のRDD操作を実行する必要があります。スパークRDD機能が

これは私がこれまで試してみました何..です

JavaRDD<String> diskfile = sc.textFile("/Users/hadoop/Downloads/Data_1.csv"); 

    JavaRDD<Object> newRDD = diskfile.cache().map(lines -> Arrays.asList(new String[]{ 
      lines.split(",")[0], 
      lines.split(",")[1] 
     } 

     )); 
System.out.println(newRDD.collect()); 

newRDD.collect()版画0列目およびCSVデータの1列目。今私はnewRDDでRDD操作を実行する必要があります。

ありがとうございます。

答えて

0

あなたのwannaはスパークRDD変換を始めるなら、あなたは以下のリンクに行くことができますが:

JavaRDD<String> textFile = sc.textFile("hdfs://..."); 
JavaRDD<String> words = textFile.flatMap(new FlatMapFunction<String, String>() { 
    public Iterable<String> call(String s) { return Arrays.asList(s.split(" ")); } 
}); 
JavaPairRDD<String, Integer> pairs = words.mapToPair(new PairFunction<String, String, Integer>() { 
    public Tuple2<String, Integer> call(String s) { return new Tuple2<String, Integer>(s, 1); } 
}); 
JavaPairRDD<String, Integer> counts = pairs.reduceByKey(new Function2<Integer, Integer, Integer>() { 
    public Integer call(Integer a, Integer b) { return a + b; } 
}); 
counts.saveAsTextFile("hdfs://..."); 

RDD-Basic-Examples

RDD API Examples

WordがflatMap, mapToPair, reduceByKey変換を使用してJavaでの例を数えます

+0

応答のおかげで、私はRDD操作について知っています。ここで私の要件は、csvデータの2つの列に対してrdd操作を適用することです。 – user4342532

+0

重量の操作をお探しですか? –

+0

私はcolumn1の最大値に応じてcolumn2の値を返す必要があります。 – user4342532

関連する問題