2015-04-14 3 views
1

Я хочу преобразовать данные JSON в файл Avro. Итак, как я могу это сделать с помощью Java API/кода?Преобразование JSON в Avro с использованием Java

Мой файл JSON образец:

[ 
    { 
    "ProductID": "101.0", 
    "Id": "1.0", 
    "OrderID": "1111.0", 
    "Name": "John" 
    }, 
    { 
    "ProductID": "102.0", 
    "Id": "2.0", 
    "OrderID": "2222.0", 
    "Name": "Taylor" 
    } 
] 

Так первая вещь, как я могу создать Avro файл схемы из JSON файла?

Во-вторых, создав схему Avro, как ее преобразовать в файл Avro?

ответ

2

Проверьте, подходит ли приведенный ниже код.

public <T> T jsonDecodeToAvro(String inputString, Class<T> className, 
Schema schema) { 

    T returnObject = null; 

    try { 

     JsonDecoder jsonDecoder = DecoderFactory.get().jsonDecoder(schema, 
inputString); 

     SpecificDatumReader<T> reader = new 
SpecificDatumReader<T>(className); 

     returnObject = reader.read(null, jsonDecoder); 

    } catch (IOException e) { 

     e.printStackTrace(); 

    } 



    return returnObject; 
} 
+0

Привет, Если я сохраняю тип схемы avro как 'String', то я получаю ошибку в jsonDecoder (schema, inputstring). потому что json Decoder ожидает, что тип схемы будет «Schema». Так как это можно решить? – shree11

+0

Любые предложения или обновления? – shree11

+0

Я не уверен. Обновит вас, если найду. – Ram

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