2015-08-06 3 views
0

У нас есть файл HDFS, записанный как каскадная последовательность Файлы, которые мы хотим обработать с помощью Apache Spark. Я попытался с помощью JavaPairRDD читать ключевые пары значений следующим образом:Чтение файла каскадной последовательности в Spark

JavaPairRDD<String, String> input = ctx.sequenceFile("file-path", String.class, String.class); 

На выполнении этой работы я получаю эту следующую ошибку:

java.io.IOException: Could not find a deserializer for the Key class: 
'cascading.tuple.Tuple'. 
Please ensure that the configuration 'io.serializations' is properly configured, 
if you're using custom serialization. 

Я новичок в использовании Apache Спарк. Я попытался установить класс сериализации в объекте искрового контекста, но я все еще получаю эту ошибку. Я не нашел ни одного примера os с использованием каскадного файла последовательности в Spark. Любая помощь будет оценена по достоинству.

ответ

0

Я нашел решение. Для его сериализации необходимо установить конфигурацию hadoop. Это может быть сделано как:

JavaSparkContext ctx = new JavaSparkContext(sparkConf); 
    ctx.hadoopConfiguration().set("io.serializations","cascading.tuple.hadoop.TupleSerialization"); 

Это происходит потому, что Hadoop берет свое io.serializations из Hadoop конф не от искры конф. Поэтому установка этой io.serializations в sparkConf бесполезна. Надеюсь, это поможет кому-то решить эту проблему.