如何将分区的 Apache Arrow 或 Parquet 文件读入/写出 Julia

tin*_*ker 6 julia parquet apache-arrow

我正在尝试在 Julia 中读取和写入一个简单的数据集。数据集是mtcars,取自 R,具有任意添加的bt带有随机布尔值的列。文件/文件夹结构(如下)是使用 Rarrow包写出的。

文件排列如下:

arr
|-- bt=false
|   `-- part-1.arrow
`-- bt=true
    `-- part-0.arrow
Run Code Online (Sandbox Code Playgroud)

如何在 Julia 中忠实地重现原始表?

到目前为止我尝试过的:

  1. 使用Parquet.jl包。文档建议它应该自动检测 bool/string/date 类型列的分区文件夹结构。当我使用 读取数据时,read_parquet(path; kwargs)生成的数据结构没有该bt列。我试过将column_generator关键字参数设置为默认值,Parquet.dataset_column_generator但这不起作用。

  2. 使用Arrow.jl- 我找不到直接读取分区数据结构的记录方式(除非我误解了)。

R 不会生成额外的元数据文件来存储架构,但我知道这是可选的,而不是箭头规范的一部分?

小智 1

尝试这个。他们列出了一个方法,如下所示

还可以使用该方法返回的迭代器来迭代 parquet 文件或数据集中的分区Tables.partitions

using Parquet, DataFrames
for partition in Tables.partitions(read_parquet(path))
    df = DataFrame(partition)
    ...
end
Run Code Online (Sandbox Code Playgroud)

如需进一步参考: https: //github.com/JuliaIO/Parquet.jl