Documentation
¶
Overview ¶
Package archery provides a simple and idiomatic Go API for Apache Arrow compute operations.
Example (Abs) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array with negative values
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{-1, 2, -3, 4, -5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate absolute values
ctx := context.Background()
result, err := archery.Abs(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(result)
// Print the result
fmt.Println("Absolute values:")
for i := 0; i < result.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", result.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Absolute values: 1.0 2.0 3.0 4.0 5.0
Example (Add) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create two test arrays
builder1 := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder1.Release()
builder1.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr1 := builder1.NewFloat64Array()
defer arr1.Release()
builder2 := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder2.Release()
builder2.AppendValues([]float64{10, 20, 30, 40, 50}, nil)
arr2 := builder2.NewFloat64Array()
defer arr2.Release()
// Add arrays
ctx := context.Background()
result, err := archery.Add(ctx, arr1, arr2)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(result)
// Print the result
fmt.Println("Add arrays:")
for i := 0; i < result.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", result.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Add arrays: 11.0 22.0 33.0 44.0 55.0
Example (AddScalar) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Add a scalar
ctx := context.Background()
result, err := archery.AddScalar(ctx, arr, float64(10))
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(result)
// Print the result
fmt.Println("Add 10:")
for i := 0; i < result.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", result.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Add 10: 11.0 12.0 13.0 14.0 15.0
Example (Count) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array with some null values
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, []bool{true, true, false, true, true})
arr := builder.NewFloat64Array()
defer arr.Release()
// Count non-null values
ctx := context.Background()
count, err := archery.Count(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Count null values
nullCount := archery.CountNull(ctx, arr)
// Print the results
fmt.Printf("Count: %d\n", count)
fmt.Printf("Null Count: %d\n", nullCount)
}
Output: Count: 4 Null Count: 1
Example (CountValues) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array with duplicates
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]int64{1, 2, 2, 3, 1, 4, 5, 5}, nil)
arr := builder.NewInt64Array()
defer arr.Release()
// Count values
ctx := context.Background()
values, counts, err := archery.CountValues(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(values)
defer archery.ReleaseArray(counts)
// Print the values and counts
fmt.Println("Value counts:")
for i := 0; i < values.Len(); i++ {
fmt.Printf("%d: %d\n", values.(*array.Int64).Value(i), counts.(*array.Int64).Value(i))
}
}
Output: Value counts: 1: 2 2: 2 3: 1 4: 1 5: 2
Example (Filter) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, nil)
arr := builder.NewInt64Array()
defer arr.Release()
// Create a mask for values > 5
ctx := context.Background()
mask, err := archery.GreaterScalar(ctx, arr, int64(5))
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(mask)
// Apply the mask
filtered, err := archery.Filter(ctx, arr, mask)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(filtered)
// Print the filtered array
fmt.Println("Values > 5:")
for i := 0; i < filtered.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", filtered.(*array.Int64).Value(i))
}
fmt.Println()
}
Output: Values > 5: 6 7 8 9 10
Example (FilterRange) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, nil)
arr := builder.NewInt64Array()
defer arr.Release()
// Create masks for 3 <= x <= 7
ctx := context.Background()
lowerMask, err := archery.GreaterEqualScalar(ctx, arr, int64(3))
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(lowerMask)
upperMask, err := archery.LessEqualScalar(ctx, arr, int64(7))
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(upperMask)
// Combine masks
combinedMask, err := archery.And(ctx, lowerMask, upperMask)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(combinedMask)
// Apply the combined mask
filtered, err := archery.Filter(ctx, arr, combinedMask)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(filtered)
// Print the filtered array
fmt.Println("Values between 3 and 7:")
for i := 0; i < filtered.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", filtered.(*array.Int64).Value(i))
}
fmt.Println()
}
Output: Values between 3 and 7: 3 4 5 6 7
Example (IsIn) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, nil)
arr := builder.NewInt64Array()
defer arr.Release()
// Create a set of values to check against
setValues := []int64{2, 4, 6, 8, 10}
// Create a mask for values in the set
ctx := context.Background()
// Create individual masks for each value in the set
masks := make([]arrow.Array, len(setValues))
for i, val := range setValues {
mask, err := archery.EqualScalar(ctx, arr, val)
if err != nil {
fmt.Println("Error:", err)
return
}
masks[i] = mask
}
// Combine all masks with OR
var combinedMask arrow.Array
if len(masks) > 0 {
combinedMask = masks[0]
for i := 1; i < len(masks); i++ {
newMask, err := archery.Or(ctx, combinedMask, masks[i])
if err != nil {
fmt.Println("Error:", err)
return
}
combinedMask.Release()
masks[i].Release()
combinedMask = newMask
}
}
defer archery.ReleaseArray(combinedMask)
// Apply the mask
filtered, err := archery.Filter(ctx, arr, combinedMask)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(filtered)
// Print the filtered array
fmt.Println("Values in set [2, 4, 6, 8, 10]:")
for i := 0; i < filtered.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", filtered.(*array.Int64).Value(i))
}
fmt.Println()
}
Output: Values in set [2, 4, 6, 8, 10]: 2 4 6 8 10
Example (Mean) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate mean
ctx := context.Background()
mean, err := archery.Mean(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the result
fmt.Printf("Mean: %.1f\n", mean)
}
Output: Mean: 3.0
Example (MinMax) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate min and max
ctx := context.Background()
min, err := archery.Min(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
max, err := archery.Max(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the results
fmt.Printf("Min: %.1f\n", min)
fmt.Printf("Max: %.1f\n", max)
}
Output: Min: 1.0 Max: 5.0
Example (MultiplyScalar) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Multiply by a scalar
ctx := context.Background()
result, err := archery.MultiplyScalar(ctx, arr, float64(2))
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(result)
// Print the result
fmt.Println("Multiply by 2:")
for i := 0; i < result.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", result.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Multiply by 2: 2.0 4.0 6.0 8.0 10.0
Example (NthElement) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{5, 3, 1, 4, 2}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Get the 2nd element (0-indexed) in sorted order
ctx := context.Background()
element, err := archery.NthElement(ctx, arr, 2, archery.Ascending)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the result
fmt.Printf("3rd smallest element: %.1f\n", element)
}
Output: 3rd smallest element: 3.0
Example (NullFiltering) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array with nulls
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
// Add values with some nulls
builder.AppendValues([]int64{1, 2, 3}, []bool{true, false, true})
builder.AppendNull()
builder.AppendValues([]int64{5, 6}, []bool{true, true})
arr := builder.NewInt64Array()
defer arr.Release()
// Create a manual mask for non-null values
maskBuilder := array.NewBooleanBuilder(memory.DefaultAllocator)
defer maskBuilder.Release()
for i := 0; i < arr.Len(); i++ {
maskBuilder.Append(!arr.IsNull(i))
}
mask := maskBuilder.NewBooleanArray()
defer mask.Release()
// Apply the mask to drop nulls
ctx := context.Background()
nonNullArr, err := archery.Filter(ctx, arr, mask)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(nonNullArr)
// Print the non-null values
fmt.Println("Non-null values:")
for i := 0; i < nonNullArr.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", nonNullArr.(*array.Int64).Value(i))
}
fmt.Println()
// Count nulls
nullCount := archery.CountNull(ctx, arr)
fmt.Printf("Null count: %d\n", nullCount)
}
Output: Non-null values: 1 3 5 6 Null count: 2
Example (Sort) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{5, 3, 1, 4, 2}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Sort the array in ascending order
ctx := context.Background()
sorted, err := archery.Sort(ctx, arr, archery.Ascending)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(sorted)
// Print the sorted array
fmt.Println("Sorted (ascending):")
for i := 0; i < sorted.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", sorted.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Sorted (ascending): 1.0 2.0 3.0 4.0 5.0
Example (SortDescending) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{5, 3, 1, 4, 2}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Sort the array in descending order
ctx := context.Background()
sorted, err := archery.Sort(ctx, arr, archery.Descending)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(sorted)
// Print the sorted array
fmt.Println("Sorted (descending):")
for i := 0; i < sorted.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", sorted.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Sorted (descending): 5.0 4.0 3.0 2.0 1.0
Example (SortIndices) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{5, 3, 1, 4, 2}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Get sort indices
ctx := context.Background()
indices, err := archery.SortIndices(ctx, arr, archery.Ascending)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(indices)
// Print the indices
fmt.Println("Sort indices:")
for i := 0; i < indices.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", indices.(*array.Int64).Value(i))
}
fmt.Println()
}
Output: Sort indices: 2 4 1 3 0
Example (Sqrt) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 4, 9, 16, 25}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate square root
ctx := context.Background()
result, err := archery.Sqrt(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(result)
// Print the result
fmt.Println("Square root:")
for i := 0; i < result.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%.1f", result.(*array.Float64).Value(i))
}
fmt.Println()
}
Output: Square root: 1.0 2.0 3.0 4.0 5.0
Example (StandardDeviation) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate standard deviation
ctx := context.Background()
stdDev, err := archery.StandardDeviation(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the result (rounded to 1 decimal place)
fmt.Printf("Standard Deviation: %.1f\n", stdDev)
}
Output: Standard Deviation: 1.4
Example (Sum) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate sum
ctx := context.Background()
sum, err := archery.Sum(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the result
fmt.Printf("Sum: %.1f\n", sum)
}
Output: Sum: 15.0
Example (UniqueValues) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array with duplicates
builder := array.NewInt64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]int64{1, 2, 2, 3, 1, 4, 5, 5}, nil)
arr := builder.NewInt64Array()
defer arr.Release()
// Get unique values
ctx := context.Background()
unique, err := archery.UniqueValues(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
defer archery.ReleaseArray(unique)
// Print the unique values
fmt.Println("Unique values:")
for i := 0; i < unique.Len(); i++ {
if i > 0 {
fmt.Printf(" ")
}
fmt.Printf("%d", unique.(*array.Int64).Value(i))
}
fmt.Println()
}
Output: Unique values: 1 2 3 4 5
Example (Variance) ¶
package main
import (
"context"
"fmt"
"github.com/TFMV/archery"
"github.com/apache/arrow-go/v18/arrow/array"
"github.com/apache/arrow-go/v18/arrow/memory"
)
func main() {
// Create a test array
builder := array.NewFloat64Builder(memory.DefaultAllocator)
defer builder.Release()
builder.AppendValues([]float64{1, 2, 3, 4, 5}, nil)
arr := builder.NewFloat64Array()
defer arr.Release()
// Calculate variance
ctx := context.Background()
variance, err := archery.Variance(ctx, arr)
if err != nil {
fmt.Println("Error:", err)
return
}
// Print the result
fmt.Printf("Variance: %.1f\n", variance)
}
Output: Variance: 2.0
Index ¶
- func Abs(ctx context.Context, a arrow.Array) (arrow.Array, error)
- func Add(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func AddColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
- func AddColumns(ctx context.Context, a, b arrow.Record, colName string) (arrow.Record, error)
- func AddScalar(ctx context.Context, a arrow.Array, val interface{}) (arrow.Array, error)
- func All(ctx context.Context, input arrow.Array) (bool, error)
- func And(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func Any(ctx context.Context, input arrow.Array) (bool, error)
- func ColumnNames(rec arrow.Record) []string
- func Count(ctx context.Context, input arrow.Array) (int64, error)
- func CountColumn(ctx context.Context, rec arrow.Record, colName string) (int64, error)
- func CountNull(ctx context.Context, input arrow.Array) int64
- func CountValues(ctx context.Context, input arrow.Array) (values arrow.Array, counts arrow.Array, err error)
- func Divide(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func DivideColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
- func DivideColumns(ctx context.Context, a, b arrow.Record, colName string) (arrow.Record, error)
- func DivideScalar(ctx context.Context, a arrow.Array, val interface{}) (arrow.Array, error)
- func Equal(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func EqualScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func Filter(ctx context.Context, input arrow.Array, mask arrow.Array) (arrow.Array, error)
- func FilterRecord(ctx context.Context, input arrow.Record, mask arrow.Array) (arrow.Record, error)
- func FilterRecordByColumn(ctx context.Context, input arrow.Record, colName string, condition arrow.Array) (arrow.Record, error)
- func FilterRecordByColumnRange(ctx context.Context, input arrow.Record, colName string, min, max interface{}) (arrow.Record, error)
- func FilterRecordByColumnValue(ctx context.Context, input arrow.Record, colName string, val interface{}) (arrow.Record, error)
- func GetColumn(rec arrow.Record, name string) (arrow.Array, error)
- func GetColumnIndex(rec arrow.Record, name string) (int, error)
- func Greater(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func GreaterEqual(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func GreaterEqualScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func GreaterScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func Invert(ctx context.Context, input arrow.Array) (arrow.Array, error)
- func IsNull(ctx context.Context, input arrow.Array) (arrow.Array, error)
- func IsValid(ctx context.Context, input arrow.Array) (arrow.Array, error)
- func Less(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func LessEqual(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func LessEqualScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func LessScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func Max(ctx context.Context, input arrow.Array) (interface{}, error)
- func MaxColumn(ctx context.Context, rec arrow.Record, colName string) (interface{}, error)
- func Mean(ctx context.Context, input arrow.Array) (float64, error)
- func MeanColumn(ctx context.Context, rec arrow.Record, colName string) (float64, error)
- func Min(ctx context.Context, input arrow.Array) (interface{}, error)
- func MinColumn(ctx context.Context, rec arrow.Record, colName string) (interface{}, error)
- func Mode(ctx context.Context, input arrow.Array) (interface{}, error)
- func Multiply(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func MultiplyColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
- func MultiplyColumns(ctx context.Context, a, b arrow.Record, colName string) (arrow.Record, error)
- func MultiplyScalar(ctx context.Context, a arrow.Array, val interface{}) (arrow.Array, error)
- func Negate(ctx context.Context, a arrow.Array) (arrow.Array, error)
- func NotEqual(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func NotEqualScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
- func NthElement(ctx context.Context, input arrow.Array, n int64, order SortOrder) (interface{}, error)
- func Or(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func Power(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func PowerScalar(ctx context.Context, a arrow.Array, val interface{}) (arrow.Array, error)
- func Rank(ctx context.Context, input arrow.Array, order SortOrder) (arrow.Array, error)
- func ReleaseArray(arr arrow.Array)
- func ReleaseRecord(rec arrow.Record)
- func ReplaceRecordColumn(rec arrow.Record, colIndex int, newCol arrow.Array) arrow.Record
- func ReplaceRecordColumnByName(rec arrow.Record, colName string, newCol arrow.Array) (arrow.Record, error)
- func Sign(ctx context.Context, a arrow.Array) (arrow.Array, error)
- func Sort(ctx context.Context, input arrow.Array, order SortOrder) (arrow.Array, error)
- func SortIndices(ctx context.Context, input arrow.Array, order SortOrder) (arrow.Array, error)
- func SortRecord(ctx context.Context, input arrow.Record, sortCols []string, ...) (arrow.Record, error)
- func SortRecordByColumn(ctx context.Context, input arrow.Record, colName string, order SortOrder) (arrow.Record, error)
- func Sqrt(ctx context.Context, a arrow.Array) (arrow.Array, error)
- func StandardDeviation(ctx context.Context, input arrow.Array) (float64, error)
- func StandardDeviationColumn(ctx context.Context, rec arrow.Record, colName string) (float64, error)
- func Subtract(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- func SubtractColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
- func SubtractColumns(ctx context.Context, a, b arrow.Record, colName string) (arrow.Record, error)
- func SubtractScalar(ctx context.Context, a arrow.Array, val interface{}) (arrow.Array, error)
- func Sum(ctx context.Context, input arrow.Array) (interface{}, error)
- func SumColumn(ctx context.Context, rec arrow.Record, colName string) (interface{}, error)
- func TakeWithIndices(ctx context.Context, input arrow.Array, indices arrow.Array) (arrow.Array, error)
- func UniqueValues(ctx context.Context, input arrow.Array) (arrow.Array, error)
- func Variance(ctx context.Context, input arrow.Array) (float64, error)
- func VarianceColumn(ctx context.Context, rec arrow.Record, colName string) (float64, error)
- func Xor(ctx context.Context, a, b arrow.Array) (arrow.Array, error)
- type SortOrder
Examples ¶
- Package (Abs)
- Package (Add)
- Package (AddScalar)
- Package (Count)
- Package (CountValues)
- Package (Filter)
- Package (FilterRange)
- Package (IsIn)
- Package (Mean)
- Package (MinMax)
- Package (MultiplyScalar)
- Package (NthElement)
- Package (NullFiltering)
- Package (Sort)
- Package (SortDescending)
- Package (SortIndices)
- Package (Sqrt)
- Package (StandardDeviation)
- Package (Sum)
- Package (UniqueValues)
- Package (Variance)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddColumnScalar ¶ added in v0.4.0
func AddColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
AddColumnScalar adds a scalar to a column in a record batch
func AddColumns ¶ added in v0.4.0
AddColumns adds corresponding columns from two record batches
func ColumnNames ¶ added in v0.4.0
ColumnNames returns the names of all columns in the record
func CountColumn ¶ added in v0.4.0
CountColumn returns the number of non-null elements in a column
func CountValues ¶ added in v0.4.0
func CountValues(ctx context.Context, input arrow.Array) (values arrow.Array, counts arrow.Array, err error)
CountValues returns the unique values and their counts in the array
func DivideColumnScalar ¶ added in v0.4.0
func DivideColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
DivideColumnScalar divides a column in a record batch by a scalar
func DivideColumns ¶ added in v0.4.0
DivideColumns divides corresponding columns from two record batches
func DivideScalar ¶
DivideScalar divides each element of an array by a scalar value
func EqualScalar ¶ added in v0.4.0
EqualScalar returns a mask array indicating which elements are equal to the scalar value
func FilterRecord ¶ added in v0.4.0
FilterRecord returns a new record with only rows where the mask is true
func FilterRecordByColumn ¶ added in v0.3.0
func FilterRecordByColumn(ctx context.Context, input arrow.Record, colName string, condition arrow.Array) (arrow.Record, error)
FilterRecordByColumn returns a new record with only rows where the condition on the column is true
func FilterRecordByColumnRange ¶ added in v0.4.0
func FilterRecordByColumnRange(ctx context.Context, input arrow.Record, colName string, min, max interface{}) (arrow.Record, error)
FilterRecordByColumnRange returns a new record with only rows where the column value is in the given range
func FilterRecordByColumnValue ¶ added in v0.4.0
func FilterRecordByColumnValue(ctx context.Context, input arrow.Record, colName string, val interface{}) (arrow.Record, error)
FilterRecordByColumnValue returns a new record with only rows where the column equals the given value
func GetColumnIndex ¶ added in v0.4.0
GetColumnIndex returns the index of a column in a record batch by name
func Greater ¶ added in v0.4.0
Greater returns a mask array indicating which elements of a are greater than b
func GreaterEqual ¶ added in v0.4.0
GreaterEqual returns a mask array indicating which elements of a are greater than or equal to b
func GreaterEqualScalar ¶ added in v0.4.0
func GreaterEqualScalar(ctx context.Context, input arrow.Array, val interface{}) (arrow.Array, error)
GreaterEqualScalar returns a mask array indicating which elements are greater than or equal to the scalar value
func GreaterScalar ¶ added in v0.4.0
GreaterScalar returns a mask array indicating which elements are greater than the scalar value
func Less ¶ added in v0.4.0
Less returns a mask array indicating which elements of a are less than b
func LessEqual ¶ added in v0.4.0
LessEqual returns a mask array indicating which elements of a are less than or equal to b
func LessEqualScalar ¶ added in v0.4.0
LessEqualScalar returns a mask array indicating which elements are less than or equal to the scalar value
func LessScalar ¶ added in v0.4.0
LessScalar returns a mask array indicating which elements are less than the scalar value
func MeanColumn ¶ added in v0.4.0
MeanColumn returns the mean of a column in a record batch
func MultiplyColumnScalar ¶ added in v0.4.0
func MultiplyColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
MultiplyColumnScalar multiplies a column in a record batch by a scalar
func MultiplyColumns ¶ added in v0.4.0
MultiplyColumns multiplies corresponding columns from two record batches
func MultiplyScalar ¶
MultiplyScalar multiplies each element of an array by a scalar value
func NotEqual ¶ added in v0.4.0
NotEqual returns a mask array indicating which elements are not equal
func NotEqualScalar ¶ added in v0.4.0
NotEqualScalar returns a mask array indicating which elements are not equal to the scalar value
func NthElement ¶
func NthElement(ctx context.Context, input arrow.Array, n int64, order SortOrder) (interface{}, error)
NthElement returns the nth element in sorted order
func Power ¶
Power raises each element in first array to the power of the corresponding element in second array
func PowerScalar ¶
PowerScalar raises each element of an array to a scalar power
func ReleaseArray ¶ added in v0.4.0
ReleaseArray safely releases an array if it's not nil
func ReleaseRecord ¶ added in v0.4.0
ReleaseRecord safely releases a record if it's not nil
func ReplaceRecordColumn ¶ added in v0.4.0
ReplaceRecordColumn replaces a column in the record batch and returns a new record
func ReplaceRecordColumnByName ¶ added in v0.4.0
func ReplaceRecordColumnByName(rec arrow.Record, colName string, newCol arrow.Array) (arrow.Record, error)
ReplaceRecordColumnByName replaces a column in the record batch by name and returns a new record
func SortIndices ¶ added in v0.4.0
SortIndices returns the indices that would sort the input array
func SortRecord ¶ added in v0.4.0
func SortRecord(ctx context.Context, input arrow.Record, sortCols []string, sortOrders []SortOrder) (arrow.Record, error)
SortRecord sorts a record by one or more columns
func SortRecordByColumn ¶ added in v0.3.0
func SortRecordByColumn(ctx context.Context, input arrow.Record, colName string, order SortOrder) (arrow.Record, error)
SortRecordByColumn sorts a record by a single column
func StandardDeviation ¶
StandardDeviation returns the standard deviation of the array
func StandardDeviationColumn ¶ added in v0.4.0
func StandardDeviationColumn(ctx context.Context, rec arrow.Record, colName string) (float64, error)
StandardDeviationColumn returns the standard deviation of a column
func SubtractColumnScalar ¶ added in v0.4.0
func SubtractColumnScalar(ctx context.Context, rec arrow.Record, colName string, val interface{}) (arrow.Record, error)
SubtractColumnScalar subtracts a scalar from a column in a record batch
func SubtractColumns ¶ added in v0.4.0
SubtractColumns subtracts corresponding columns from two record batches
func SubtractScalar ¶
SubtractScalar subtracts a scalar value from each element of an array
func TakeWithIndices ¶
func TakeWithIndices(ctx context.Context, input arrow.Array, indices arrow.Array) (arrow.Array, error)
TakeWithIndices reorders elements of the array according to the indices
func UniqueValues ¶
UniqueValues returns the unique values in the array
func VarianceColumn ¶ added in v0.4.0
VarianceColumn returns the variance of a column