diff options
| author | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
|---|---|---|
| committer | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
| commit | 17a3ea880402338420699e03bcb24181e4ff3924 (patch) | |
| tree | da666ef91e0b60d20aa0b01529644c136fd1f4ab /lib/libtmi8/include/tmi8/kv6_parquet.hpp | |
| download | oeuf-17a3ea880402338420699e03bcb24181e4ff3924.tar.gz oeuf-17a3ea880402338420699e03bcb24181e4ff3924.zip | |
Initial commit
Based on dc4ba6a
Diffstat (limited to 'lib/libtmi8/include/tmi8/kv6_parquet.hpp')
| -rw-r--r-- | lib/libtmi8/include/tmi8/kv6_parquet.hpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/libtmi8/include/tmi8/kv6_parquet.hpp b/lib/libtmi8/include/tmi8/kv6_parquet.hpp new file mode 100644 index 0000000..33b57ca --- /dev/null +++ b/lib/libtmi8/include/tmi8/kv6_parquet.hpp | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | // vim:set sw=2 ts=2 sts et: | ||
| 2 | |||
| 3 | #ifndef OEUF_LIBTMI8_KV6_PARQUET_HPP | ||
| 4 | #define OEUF_LIBTMI8_KV6_PARQUET_HPP | ||
| 5 | |||
| 6 | #include <filesystem> | ||
| 7 | |||
| 8 | #include <arrow/api.h> | ||
| 9 | #include <arrow/io/api.h> | ||
| 10 | #include <parquet/arrow/writer.h> | ||
| 11 | |||
| 12 | static const size_t MAX_PARQUET_CHUNK = 10000; | ||
| 13 | |||
| 14 | struct ParquetBuilder { | ||
| 15 | ParquetBuilder(); | ||
| 16 | arrow::Result<std::shared_ptr<arrow::Table>> getTable(); | ||
| 17 | |||
| 18 | std::shared_ptr<arrow::Schema> schema; | ||
| 19 | |||
| 20 | arrow::StringBuilder types; | ||
| 21 | arrow::StringBuilder data_owner_codes; | ||
| 22 | arrow::StringBuilder line_planning_numbers; | ||
| 23 | arrow::Date32Builder operating_days; | ||
| 24 | arrow::UInt32Builder journey_numbers; | ||
| 25 | arrow::UInt8Builder reinforcement_numbers; | ||
| 26 | arrow::TimestampBuilder timestamps{arrow::timestamp(arrow::TimeUnit::SECOND), arrow::default_memory_pool()}; | ||
| 27 | arrow::StringBuilder sources; | ||
| 28 | arrow::Int16Builder punctualities; | ||
| 29 | arrow::StringBuilder user_stop_codes; | ||
| 30 | arrow::UInt16Builder passage_sequence_numbers; | ||
| 31 | arrow::UInt32Builder vehicle_numbers; | ||
| 32 | arrow::UInt32Builder block_codes; | ||
| 33 | arrow::StringBuilder wheelchair_accessibles; | ||
| 34 | arrow::UInt8Builder number_of_coaches; | ||
| 35 | arrow::Int32Builder rd_ys; | ||
| 36 | arrow::Int32Builder rd_xs; | ||
| 37 | arrow::UInt32Builder distance_since_last_user_stops; | ||
| 38 | }; | ||
| 39 | |||
| 40 | [[nodiscard]] | ||
| 41 | arrow::Status writeArrowRecordsAsParquetFile(arrow::RecordBatchReader &rbr, std::filesystem::path filename); | ||
| 42 | |||
| 43 | [[nodiscard]] | ||
| 44 | arrow::Status writeArrowTableAsParquetFile(const arrow::Table &table, std::filesystem::path filename); | ||
| 45 | |||
| 46 | #endif // OEUF_LIBTMI8_KV6_PARQUET_HPP | ||