arrow/_examples/helloworld/main.go (28 lines of code) (raw):

// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "os" "github.com/apache/arrow-go/v18/arrow" "github.com/apache/arrow-go/v18/arrow/array" "github.com/apache/arrow-go/v18/arrow/math" "github.com/apache/arrow-go/v18/arrow/memory" ) func main() { schema := arrow.NewSchema([]arrow.Field{ {Name: "intField", Type: arrow.PrimitiveTypes.Int64, Nullable: false}, {Name: "stringField", Type: arrow.BinaryTypes.String, Nullable: false}, {Name: "floatField", Type: arrow.PrimitiveTypes.Float64, Nullable: true}, }, nil) builder := array.NewRecordBuilder(memory.DefaultAllocator, schema) defer builder.Release() builder.Field(0).(*array.Int64Builder).AppendValues([]int64{1, 2, 3, 4, 5}, nil) builder.Field(1).(*array.StringBuilder).AppendValues([]string{"a", "b", "c", "d", "e"}, nil) builder.Field(2).(*array.Float64Builder).AppendValues([]float64{1, 0, 3, 0, 5}, []bool{true, false, true, false, true}) rec := builder.NewRecord() defer rec.Release() tbl := array.NewTableFromRecords(schema, []arrow.Record{rec}) defer tbl.Release() sum := math.Float64.Sum(tbl.Column(2).Data().Chunk(0).(*array.Float64)) if sum != 9 { defer os.Exit(1) } }