ability to append partitions to existing arrow files (#160)
authorTanmay Mohapatra <tanmaykm@gmail.com>
Fri, 23 Apr 2021 00:34:00 +0000 (06:04 +0530)
committerGitHub <noreply@github.com>
Fri, 23 Apr 2021 00:34:00 +0000 (18:34 -0600)
commit742ea4c4d805e169cdf622b06df0339b6d6cd2f8
treee45ae95442bcf94f2a10f1567a15a8bc6b0699f4
parent125c1e722406d866ccc350351da71e83ffe10edd
ability to append partitions to existing arrow files (#160)

* ability to append partitions to an arrow file

This adds a method to `append` partitions to existing arrow files. Partitiions to append to are supplied in the form of any [Tables.jl](https://github.com/JuliaData/Tables.jl)-compatible table.

Multiple record batches will be written based on the number of `Tables.partitions(tbl)` that are provided.

Each partition being appended must have the same `Tables.Schema` as the destination arrow file that is being appended to.

Other parameters that `append` accepts are similar to what `write` accepts.

* remove unused methods

* add more tests and some fixes

* allow appends to both seekable IO and files

* few changes to Stream,avoid duplication for append

store few additional stream properties in the `Stream` data type and avoid duplicating code for append functionality

* call Tables.schema on result of Tables.columns
src/Arrow.jl
src/append.jl [new file with mode: 0644]
src/table.jl
src/write.jl
test/arrowjson.jl
test/runtests.jl
test/testappend.jl [new file with mode: 0644]