Как собрать данные Spark JavaPairRDD в виде списка
Я работаю над задачей Apache Spark 2.2.0 в Java, и в настоящее время я выполняю mapToPair()
функционировать над моим JavaRDD<String>
и я получаю результат JavaPairRDD<Integer, Table>
, Рассматривать Table
как любой тип объекта.
Сейчас я пытаюсь собрать все данные в окончательный список, который будет возвращен в программу драйвера. Я не хочу выполнять какие-либо преобразования, агрегирование или вычисление данных, поэтому я подумал об использовании collect()
функция.
Что я имею до сих пор, так это следующее:
JavaPairRDD<Integer, Table> pairs = gData.mapToPair(...);
JavaRDD<Tuple2<Integer, Table>> t = JavaRDD.fromRDD(pairs.rdd(), null);
List<Tuple2<Integer, Table>> el = t.collect();
Но по какой-то причине, которую я не могу понять, это выдает следующую ошибку...
Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:312)
Я мог бы быть совершенно не в том направлении, но можете ли вы предложить способ сбора этих данных Tuple2 и возможного перебора по ним?
Спасибо.
Обновление Независимо от того, что делает мой код, даже если я пытаюсь запустить простой пример подсчета слов, то ошибка Format.getSplits(FileInputFormat.java:312)
все еще подходит! Любая помощь?