首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用apache/arrow解析拼花文件中的json

如何使用apache/arrow解析拼花文件中的json
EN

Stack Overflow用户
提问于 2022-05-24 01:27:50
回答 1查看 703关注 0票数 1

我正在使用阿帕奇箭来读取拼花文件。我的拼花文件的架构是:

代码语言:javascript
复制
time_stamp: int64
file_name:  byte_array
offset:     int32
meta_data:  byte_array

这些信息是由fmt.Println(rdr.MetaData().Schema)打印的。虽然列metadata是一个字节数组,但它实际上是一个json字符串,如下所示:

代码语言:javascript
复制
{
    "dataType": "left", 
    "features": [
        {
            "feature_name": "dHash", 
            "feature_val": "0000011000000111000001110010011100011111000101110000010100000101"
        }
    ], 
    "pipelineVersion": "0.0"
}

那么,如何将这些信息解析为一个结构呢?我发现了以下读取拼花文件的方法,但似乎没有模式的参数:

代码语言:javascript
复制
mem := memory.NewCheckedAllocator(memory.DefaultAllocator)
filename := "parquet file path"

rdr, _ := file.OpenParquetFile(filename, false, file.WithReadProps(parquet.NewReaderProperties(mem)))
arrowRdr, _ := pqarrow.NewFileReader(rdr, pqarrow.ArrowReadProperties{}, mem)
tbl, _ := arrowRdr.ReadTable(context.Background())
defer tbl.Release()

chunk0 := tbl.Column(0).Data().Chunk(0)
fmt.Println(chunk0)

官方医生中根本没有任何例子。提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2022-05-24 08:02:58

该信息由fmt.Println(rdr.MetaData().Schema)打印。尽管它说列元数据是一个字节数组,但它实际上是一个json字符串,如下所示:

如果json有效负载已作为json字节数组/字符串存储在parquet中,则必须解析它并手动将其转换为struct。有一些辅助函数可以处理json数据,但看起来它们并不是在go中公开的。

如果您想让拼板自动地作为一个结构来处理它,那么在编写文件时必须将它作为一个结构来存储。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72356317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档