11#include <OpenMS/config.h>
17#include <unordered_set>
29class MetaInfoInterface;
40namespace ArrowIOHelpers
60 const std::shared_ptr<arrow::Table>& table,
61 const std::string& filename,
76 const std::vector<std::shared_ptr<arrow::Table>>& tables,
77 const std::string& filename,
90 OPENMS_DLLAPI std::shared_ptr<arrow::Array>
getColumn(
91 const std::shared_ptr<arrow::Table>& table,
92 const std::string& name,
93 bool required =
true);
97 const std::shared_ptr<arrow::Array>& array,
102 const std::shared_ptr<arrow::Array>& array,
104 double default_val = 0.0);
108 const std::shared_ptr<arrow::Array>& array,
110 float default_val = 0.0f);
114 const std::shared_ptr<arrow::Array>& array,
116 int32_t default_val = 0);
120 const std::shared_ptr<arrow::Array>& array,
122 int64_t default_val = 0);
126 const std::shared_ptr<arrow::Array>& array,
128 bool default_val =
false);
132 const std::shared_ptr<arrow::Array>& array,
142 const std::shared_ptr<arrow::Array>& array,
145 const std::unordered_set<std::string>& excluded_keys = {});
int32_t getInt32Value(const std::shared_ptr< arrow::Array > &array, int64_t row, int32_t default_val=0)
Read an int32 at row, or default_val if null.
bool writeTableToParquet(const std::shared_ptr< arrow::Table > &table, const std::string &filename, const ParquetWriteConfig &config=ParquetWriteConfig{})
Write an Arrow table to a Parquet file.
int64_t getInt64Value(const std::shared_ptr< arrow::Array > &array, int64_t row, int64_t default_val=0)
Read an int64 at row, or default_val if null.
bool getBoolValue(const std::shared_ptr< arrow::Array > &array, int64_t row, bool default_val=false)
Read a bool at row, or default_val if null.
float getFloatValue(const std::shared_ptr< arrow::Array > &array, int64_t row, float default_val=0.0f)
Read a float at row, or default_val if null.
double getDoubleValue(const std::shared_ptr< arrow::Array > &array, int64_t row, double default_val=0.0)
Read a double at row, or default_val if null.
std::string generateUuidV4()
Generate a lowercase hyphenated RFC 4122 version-4 UUID string.
void readMetaValues(const std::shared_ptr< arrow::Array > &array, int64_t row, MetaInfoInterface &target, const std::unordered_set< std::string > &excluded_keys={})
Read metavalues from a list<struct{name,value,value_type}> column.
std::shared_ptr< arrow::Array > getColumn(const std::shared_ptr< arrow::Table > &table, const std::string &name, bool required=true)
Fetch a named column from a table, combining chunks if needed.
std::string getStringValue(const std::shared_ptr< arrow::Array > &array, int64_t row)
Read a string at row, or "" if null/out-of-bounds.
bool isNull(const std::shared_ptr< arrow::Array > &array, int64_t row)
Whether array is null at row (or unset)
bool concatenateAndWriteToParquet(const std::vector< std::shared_ptr< arrow::Table > > &tables, const std::string &filename, const ParquetWriteConfig &config=ParquetWriteConfig{})
Concatenate a vector of Arrow tables and write the result to a Parquet file.
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Definition ArrowIOHelpers.h:22
Configuration for Parquet file writing.
Definition MSExperimentArrowExport.h:136