2016-09-30 2 views
1

avro의 데이터 파일에 스키마가 포함되어 있으므로 독자는 .avsc 파일을 별도로 보관하지 않으려 고 스키마를 지정합니다. 그런 식으로 작동하는 자바 예제를 찾고 있었는데 찾을 수 없었습니다. 누군가, 제발 나를 위해 코드 샘플을 얻을 도와주세요. 데이터 파일에서 Avro 스키마 구문 분석

Schema schema = new Schema.Parser().parse(new File("./AvroSchema/emp.avsc")); 

DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema); 
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<GenericRecord>(new File("./AvroFileStore/empData.txt"), datumReader); 

GenericRecord emp = null; 
while (dataFileReader.hasNext()) { 
    emp = dataFileReader.next(emp); 
    System.out.println(emp); 
} 

이 예에서 우리는 datumReader를 사용하여 DataFileReader에 별도로 브로 스키마를 제공하고 있습니다.

답변

1

GenericDatumReader에는 매개 변수를 사용하지 않는 생성자도 있습니다. 단순히 스키마를 전달하지 마십시오. 물론 이것은 데이터 파일에서만 작동하며 스키마가 임베드되지 않은 데이터 스트림에서는 작동하지 않습니다.

지금까지 dataFileReader을 생성 한 후에는 getSchema() 메서드를 호출하여 필요할 때마다 스키마를 가져올 수 있습니다.

출처 : Hadoop: The Definitive Guide by Tom White

+0

고마워요. 괜찮 았어. – Jobs

관련 문제