Как прочитать метаданные значения ключа паркета стрелки?

Когда я сохраняю файл паркета в R и Python (используя pyarrow), я получаю строку схемы со стрелкой, сохраненную в метаданных.

Как мне прочитать метаданные? Это данные в кодировке Flatbuffer? Где определение схемы? Его нет на сайте документации по стрелкам.

Метаданные - это пара "ключ-значение", которая выглядит следующим образом

key: "ARROW:schema"

value: "/////5AAAAAQAAAAAAAKAAwABgAFAAgACgAAAAABAwAEAAAAyP///wQAAAABAAAAFAAAABAAGAAIAAYABwAMABAAFAAQAAAAAAABBUAAAAA4AAAAEAAAACgAAAAIAAgAAAAEAAgAAAAMAAAACAAMAAgABwA…

в результате записи этого в R

df = data.frame(a = factor(c(1, 2)))
arrow::write_parquet(df, "c:/scratch/abc.parquet")

person xiaodai    schedule 10.05.2020    source источник


Ответы (1)


Схема представляет собой данные плоского буфера в кодировке base64. Вы можете прочитать схему на Python, используя следующий код:

import base64
import pyarrow as pa
import pyarrow.parquet as pq

meta = pq.read_metadata(filename)
decoded_schema = base64.b64decode(meta.metadata[b"ARROW:schema"])
schema = pa.ipc.read_schema(pa.BufferReader(decoded_schema))
person Uwe L. Korn    schedule 11.05.2020