MCPcopy Create free account
hub / github.com/apache/arrow / FromChunkedStructArray

Method FromChunkedStructArray

cpp/src/arrow/table.cc:325–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

323}
324
325Result<std::shared_ptr<Table>> Table::FromChunkedStructArray(
326 const std::shared_ptr<ChunkedArray>& array) {
327 auto type = array->type();
328 if (type->id() != Type::STRUCT) {
329 return Status::Invalid("Expected a chunked struct array, got ", *type);
330 }
331 int num_columns = type->num_fields();
332 int num_chunks = array->num_chunks();
333
334 const auto& struct_chunks = array->chunks();
335 std::vector<std::shared_ptr<ChunkedArray>> columns(num_columns);
336 for (int i = 0; i < num_columns; ++i) {
337 ArrayVector chunks(num_chunks);
338 std::transform(struct_chunks.begin(), struct_chunks.end(), chunks.begin(),
339 [i](const std::shared_ptr<Array>& struct_chunk) {
340 return static_cast<const StructArray&>(*struct_chunk).field(i);
341 });
342 columns[i] =
343 std::make_shared<ChunkedArray>(std::move(chunks), type->field(i)->type());
344 }
345
346 return Table::Make(::arrow::schema(type->fields()), std::move(columns),
347 array->length());
348}
349
350Result<std::shared_ptr<Tensor>> Table::ToTensor(bool null_to_nan, bool row_major,
351 MemoryPool* pool) const {

Callers

nothing calls this directly

Calls 13

InvalidFunction · 0.70
MakeFunction · 0.70
schemaFunction · 0.70
typeMethod · 0.45
idMethod · 0.45
num_fieldsMethod · 0.45
num_chunksMethod · 0.45
chunksMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
fieldMethod · 0.45
fieldsMethod · 0.45

Tested by

no test coverage detected