Как определить логический тип JSON в схеме Java parquet-avroJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как определить логический тип JSON в схеме Java parquet-avro

Сообщение Anonymous »

У меня есть объект JSON, который выглядит следующим образом:

Код: Выделить всё

{
"key1" : "value1",
"key2" : {
"key3" : "value3",
...
}
}
"key2" также является объектом JSON, допускающим значение NULL, который не имеет фиксированного набора ключей. Требуется определить ключ2 как логический тип JSON в схеме, и я ищу решение с использованием avro parquet(1.12.0) в Java, но не могу найти хороший пример.
Схема должна выглядеть так:

Код: Выделить всё

{
"name": "Json",
"type": "record",
"fields": [
{
"name": "key1",
"type": "string"
},
{
"name": "key2",
"type": [
"null",
{
"type": "string",
"logicalType": "json"
}
]
}
]
}
Как я могу это сделать, не реализуя свой собственный LogicalType?
Я попробовал преобразовать с помощью AvroParquetWriter, используя приведенную выше схему. Я предполагаю, что если все работает, мета-ключ 2 должен отображать логический_тип: json при чтении в pyarrow или других инструментах. Но при чтении мета-ключа «key2» с помощью pyarrow отображается логический_тип: byte_array, а не json.
Также пытались реализовать что-то похожее на то, что упоминалось в логическом типе временной метки Avro Java API?

Код: Выделить всё

Schema timestampMilliType = LogicalTypes.timestampMillis().addToSchema(Schema.create(Schema.Type.LONG));
Но похоже, что в java parquet-avro LogicalTypes нет JSON.

Подробнее здесь: https://stackoverflow.com/questions/786 ... vro-schema
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»