(fields)
| 18 | module Helper |
| 19 | module Buildable |
| 20 | def build_schema(fields) |
| 21 | fields = fields.collect do |name, data_type| |
| 22 | if data_type.is_a?(Symbol) |
| 23 | data_type_class_name = |
| 24 | data_type. |
| 25 | to_s. |
| 26 | split("_"). |
| 27 | collect(&:capitalize). |
| 28 | join. |
| 29 | gsub(/\AUint/, "UInt") + "DataType" |
| 30 | data_type = Arrow.const_get(data_type_class_name).new |
| 31 | end |
| 32 | Arrow::Field.new(name, data_type) |
| 33 | end |
| 34 | Arrow::Schema.new(fields) |
| 35 | end |
| 36 | |
| 37 | def build_null_array(values) |
| 38 | build_array(Arrow::NullArrayBuilder.new, values) |