Flex  0.17.9
csv_fragment_loader.h
Go to the documentation of this file.
1 
17 #ifndef STORAGES_RT_MUTABLE_GRAPH_LOADER_CSV_FRAGMENT_LOADER_H_
18 #define STORAGES_RT_MUTABLE_GRAPH_LOADER_CSV_FRAGMENT_LOADER_H_
19 
26 
27 #include <arrow/api.h>
28 #include <arrow/csv/api.h>
29 #include <arrow/io/api.h>
30 #include "arrow/util/value_parsing.h"
31 
32 #include "grape/util.h"
33 
34 namespace gs {
35 
37  public:
38  CSVStreamRecordBatchSupplier(label_t label_id, const std::string& file_path,
39  arrow::csv::ConvertOptions convert_options,
40  arrow::csv::ReadOptions read_options,
41  arrow::csv::ParseOptions parse_options);
42 
43  std::shared_ptr<arrow::RecordBatch> GetNextBatch() override;
44 
45  private:
46  std::string file_path_;
47  std::shared_ptr<arrow::csv::StreamingReader> reader_;
48 };
49 
51  public:
52  CSVTableRecordBatchSupplier(label_t label_id, const std::string& file_path,
53  arrow::csv::ConvertOptions convert_options,
54  arrow::csv::ReadOptions read_options,
55  arrow::csv::ParseOptions parse_options);
56 
57  std::shared_ptr<arrow::RecordBatch> GetNextBatch() override;
58 
59  private:
60  std::string file_path_;
61  std::shared_ptr<arrow::Table> table_;
62  std::shared_ptr<arrow::TableBatchReader> reader_;
63 };
64 
65 // LoadFragment for csv files.
67  public:
68  CSVFragmentLoader(const std::string& work_dir, const Schema& schema,
69  const LoadingConfig& loading_config)
70  : AbstractArrowFragmentLoader(work_dir, schema, loading_config) {}
71 
72  static std::shared_ptr<IFragmentLoader> Make(
73  const std::string& work_dir, const Schema& schema,
74  const LoadingConfig& loading_config);
75 
77 
78  Result<bool> LoadFragment() override;
79 
80  private:
81  void loadVertices();
82 
83  void loadEdges();
84 
85  void addVertices(label_t v_label_id, const std::vector<std::string>& v_files);
86 
87  void addEdges(label_t src_label_id, label_t dst_label_id, label_t e_label_id,
88  const std::vector<std::string>& e_files);
89 
90  void fillEdgeReaderMeta(arrow::csv::ReadOptions& read_options,
91  arrow::csv::ParseOptions& parse_options,
92  arrow::csv::ConvertOptions& convert_options,
93  const std::string& e_file, label_t src_label_id,
94  label_t dst_label_id, label_t label_id) const;
95 
96  void fillVertexReaderMeta(arrow::csv::ReadOptions& read_options,
97  arrow::csv::ParseOptions& parse_options,
98  arrow::csv::ConvertOptions& convert_options,
99  const std::string& v_file, label_t v_label) const;
100 
101  static const bool registered_;
102 };
103 
104 } // namespace gs
105 
106 #endif // STORAGES_RT_MUTABLE_GRAPH_LOADER_CSV_FRAGMENT_LOADER_H_
gs::Result
Definition: result.h:62
gs::CSVFragmentLoader::Make
static std::shared_ptr< IFragmentLoader > Make(const std::string &work_dir, const Schema &schema, const LoadingConfig &loading_config)
Definition: csv_fragment_loader.cc:264
gs::AbstractArrowFragmentLoader
Definition: abstract_arrow_fragment_loader.h:338
gs::CSVTableRecordBatchSupplier::reader_
std::shared_ptr< arrow::TableBatchReader > reader_
Definition: csv_fragment_loader.h:62
gs::CSVStreamRecordBatchSupplier::GetNextBatch
std::shared_ptr< arrow::RecordBatch > GetNextBatch() override
Definition: csv_fragment_loader.cc:45
i_fragment_loader.h
gs::CSVTableRecordBatchSupplier::table_
std::shared_ptr< arrow::Table > table_
Definition: csv_fragment_loader.h:61
gs::IRecordBatchSupplier
Definition: abstract_arrow_fragment_loader.h:39
gs::CSVTableRecordBatchSupplier::file_path_
std::string file_path_
Definition: csv_fragment_loader.h:60
gs
Definition: adj_list.h:23
gs::CSVFragmentLoader::~CSVFragmentLoader
~CSVFragmentLoader()
Definition: csv_fragment_loader.h:76
gs::CSVFragmentLoader::addVertices
void addVertices(label_t v_label_id, const std::vector< std::string > &v_files)
Definition: csv_fragment_loader.cc:271
mutable_property_fragment.h
gs::CSVFragmentLoader::registered_
static const bool registered_
Definition: csv_fragment_loader.h:101
abstract_arrow_fragment_loader.h
gs::Schema
Definition: schema.h:29
loading_config.h
gs::CSVFragmentLoader::LoadFragment
Result< bool > LoadFragment() override
Definition: csv_fragment_loader.cc:731
basic_fragment_loader.h
loader_factory.h
gs::CSVTableRecordBatchSupplier::CSVTableRecordBatchSupplier
CSVTableRecordBatchSupplier(label_t label_id, const std::string &file_path, arrow::csv::ConvertOptions convert_options, arrow::csv::ReadOptions read_options, arrow::csv::ParseOptions parse_options)
Definition: csv_fragment_loader.cc:56
gs::CSVTableRecordBatchSupplier
Definition: csv_fragment_loader.h:50
gs::CSVStreamRecordBatchSupplier::reader_
std::shared_ptr< arrow::csv::StreamingReader > reader_
Definition: csv_fragment_loader.h:47
gs::CSVFragmentLoader::fillEdgeReaderMeta
void fillEdgeReaderMeta(arrow::csv::ReadOptions &read_options, arrow::csv::ParseOptions &parse_options, arrow::csv::ConvertOptions &convert_options, const std::string &e_file, label_t src_label_id, label_t dst_label_id, label_t label_id) const
Definition: csv_fragment_loader.cc:517
gs::CSVFragmentLoader::addEdges
void addEdges(label_t src_label_id, label_t dst_label_id, label_t e_label_id, const std::vector< std::string > &e_files)
Definition: csv_fragment_loader.cc:299
gs::CSVStreamRecordBatchSupplier::file_path_
std::string file_path_
Definition: csv_fragment_loader.h:46
gs::CSVFragmentLoader::fillVertexReaderMeta
void fillVertexReaderMeta(arrow::csv::ReadOptions &read_options, arrow::csv::ParseOptions &parse_options, arrow::csv::ConvertOptions &convert_options, const std::string &v_file, label_t v_label) const
Definition: csv_fragment_loader.cc:375
gs::CSVStreamRecordBatchSupplier::CSVStreamRecordBatchSupplier
CSVStreamRecordBatchSupplier(label_t label_id, const std::string &file_path, arrow::csv::ConvertOptions convert_options, arrow::csv::ReadOptions read_options, arrow::csv::ParseOptions parse_options)
Definition: csv_fragment_loader.cc:21
gs::CSVFragmentLoader::loadEdges
void loadEdges()
Definition: csv_fragment_loader.cc:679
gs::CSVFragmentLoader::CSVFragmentLoader
CSVFragmentLoader(const std::string &work_dir, const Schema &schema, const LoadingConfig &loading_config)
Definition: csv_fragment_loader.h:68
gs::CSVFragmentLoader::loadVertices
void loadVertices()
Definition: csv_fragment_loader.cc:328
gs::CSVFragmentLoader
Definition: csv_fragment_loader.h:66
gs::CSVStreamRecordBatchSupplier
Definition: csv_fragment_loader.h:36
gs::CSVTableRecordBatchSupplier::GetNextBatch
std::shared_ptr< arrow::RecordBatch > GetNextBatch() override
Definition: csv_fragment_loader.cc:89
gs::LoadingConfig
Definition: loading_config.h:89
gs::label_t
uint8_t label_t
Definition: types.h:32