如何阅读箭头镶木地板键值元数据?

xiaodai

当我在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")
乌韦·科恩

该模式是base64编码的flatbuffer数据。您可以使用以下代码在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))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何阅读 java 中的镶木地板词典

Sparklyr-如何更改镶木地板数据类型

如何连接两个镶木地板数据集?

如何从Amazon Athena查询镶木地板数据?

通过首先阅读镶木地板文件将新列追加到数据框

如何创建从Postgres的管道镶木地板?

如何将记录从镶木地板写入另一个镶木地板?

使用apache箭头在一个R数据框中读取分区的镶木地板目录(所有文件)

如何使用Spark将镶木地板数据转换为案例类?

如何在 Azure 数据工厂中将 csv 转换为镶木地板

如何基于表中的数据获取镶木地板文件名

如何指定将镶木地板读入 Dask 数据帧的分区数?

如何在python中的S3中从pandas数据帧写入镶木地板文件

如何使用Databricks将.rdata文件转换为Azure数据湖中的镶木地板?

如何加载没有分区名称(在目录名称中)的分区镶木地板数据集?

从镶木地板加载数据框后比较熊猫日期

将轻快的数据帧写入镶木地板:'TypeError'

为数据框创建函数以创建镶木地板

将数据递增地写入镶木地板文件

使用C#序列化镶木地板数据

无法在 PySpark 中导入镶木地板数据

镶木地板火花错误

如何使用Spark(pyspark)编写镶木地板文件?

如何处理大量的镶木地板文件

如何使用 Pyspark 并行处理多个镶木地板文件?

如何使用Pyarrow更改镶木地板文件中的列名?

如何使用 pyarrow 流式处理镶木地板?

如何将小的镶木地板文件合并为一个大的镶木地板文件?

如何将 dask 数据框保存到与 dask sheduler/workers 相同的机器上的镶木地板上?