[HADOOP] Spark Java에서 텍스트 파일을 시퀀스 형식으로 변환
HADOOPSpark 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)
누구든지 어떤 아이디어가 있습니까? 고맙습니다!
해결법
-
==============================
1.이것을 변경하십시오 :
이것을 변경하십시오 :
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);
from https://stackoverflow.com/questions/27353462/convert-a-text-file-to-sequence-format-in-spark-java by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브를 사용하여 테이블에 자동 증분 열을 추가해야 함 (0) | 2019.09.11 |
---|---|
[HADOOP] SequenceFile이 잘리는 이유는 무엇입니까? (0) | 2019.09.11 |
[HADOOP] 개인 네트워크에서 실행되는 클러스터에서 Hadoop 작업을 시작하도록 에지 노드 구성 (0) | 2019.09.11 |
[HADOOP] JobControl 및 JofConf.setMapperClass () 오류 (0) | 2019.09.11 |
[HADOOP] 혼란스러운 하둡 릴리스 버전 (0) | 2019.09.11 |