Сбой в методе ReduByKey для СДР с ошибкой нелегального доступа - PullRequest
0 голосов
/ 30 августа 2018

У меня есть рабочая искровая работа, написанная с помощью JavaRDD. Теперь я хочу переместить вывод в dataframes без внесения значительных изменений в существующий код. Мое намерение состояло в том, чтобы преобразовать RDD в кадры данных с помощью sqlContext. Но это устарело, поэтому я использую SparkSession для создания SparkContext, а затем использую его для преобразования RDD в кадры данных.

Моя проблема - reduceBykey в паре. СДР больше не работает. Хотя во время компиляции ошибки нет, она завершается с ошибкой IllegalAccessError при выполнении, которую можно отследить до строки с вызовом reduceByKey в моем коде.

Вот ошибка 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

Ниже приведен фрагмент кода

SparkSession spark = SparkSession
    .builder()
    .appName("test")
    .master("local")
    .getOrCreate();

SparkContext sc = spark.sparkContext();
JavaRDD<String> lineInput = spark.sparkContext()
              .textFile("/tmp/test.txt", 1)
              .toJavaRDD();

JavaPairRDD<String, String> pairInput = lineInput
            .mapToPair(new FlatRDDToPairRDD());
//FlatRDDToPairRDD class takes a string and returns a Tuple
JavaPairRDD<String, String> reducedPair = pairInput.reduceByKey(new TestReducer());
JavaRDD<String> outputRDD = reducedPair.map(new 
PairRDDToFlatValueRDD());
//PairRDDToFlatValueRDD takes a Tuple and returns as string

Это моя зависимость в pom файле

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.3.1</version>
    </dependency>

Кто-нибудь еще сталкивался с подобными проблемами? Некоторые советы о том, как действовать, будут полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...