2014-12-08 4 views
2

В Spark Java, как преобразовать текстовый файл в файл последовательности? Ниже мой код:Преобразование текстового файла в формат последовательности в Spark Java

SparkConf sparkConf = new SparkConf().setAppName("txt2seq"); 
    sparkConf.setMaster("local").set("spark.executor.memory", "1g"); 
    sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); 
    JavaSparkContext ctx = new JavaSparkContext(sparkConf); 

    JavaPairRDD<String, String> infile = ctx.wholeTextFiles("input_txt"); 
    infile.saveAsNewAPIHadoopFile("outfile.seq", String.class, String.class, SequenceFileOutputFormat.class); 

И я получил ошибку ниже.

14/12/07 23:43:33 ERROR Executor: Exception in task ID 0 
java.io.IOException: Could not find a serializer for the Key class: 'java.lang.String'. Please ensure that the configuration 'io.serializations' is properly configured, if you're usingcustom serialization. 
    at org.apache.hadoop.io.SequenceFile$Writer.init(SequenceFile.java:1176) 
    at org.apache.hadoop.io.SequenceFile$Writer.<init>(SequenceFile.java:1091) 

У кого-нибудь есть идеи? Спасибо!

ответ

3

Изменить это:

JavaPairRDD<String, String> infile = ctx.wholeTextFiles("input_txt"); 
infile.saveAsNewAPIHadoopFile("outfile.seq", String.class, String.class, SequenceFileOutputFormat.class); 

в

JavaPairRDD<String, String> infile = ctx.wholeTextFiles("input_txt"); 
JavaPairRDD<Text, Text> resultRDD = infile.mapToPair(f -> new Tuple2<>(new Text(f._1()), new Text(f._2()))); 
resultRDD.saveAsNewAPIHadoopFile("outfile.seq", Text.class, Text.class, SequenceFileOutputFormat.class); 

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

  • Нет связанных вопросов^_^