2016-12-15 3 views
0

Я пытаюсь загрузить CSV файл через SparkContext и после загрузки мне нужно выполнять какие-либо операции РДД на требуемых столбцов CSV файла. Мне удалось прочитать файл csv и получить необходимые столбцы из JavaRDD. Теперь мне нужно выполнить любые операции RDD в этих столбцах.Спарк RDD функции на CSV файл

Это то, что я пытался до сих пор ..

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() печатает 0th столбцов и первого столбца данных в формате CSV. Теперь мне нужно выполнить любые операции RDD на newRDD.

Заранее спасибо.

ответ

0

Если вы хотите начать с Спарк RDD преобразований, то вы можете перейти по следующим ссылкам:

RDD-Basic-Examples

RDD API Examples

Word Count Пример в Java с помощью flatMap, mapToPair, reduceByKey преобразования:

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://..."); 
+0

Спасибо за ответ, я знаю о работе RDD. здесь мое требование - применить операции rdd на двух столбцах данных csv. – user4342532

+0

wt операция вы ищете? –

+0

Мне нужно вернуть значение column2 с максимальным значением столбца1. – user4342532

Смежные вопросы