2025-04-11 08:41:56 +00:00
|
|
|
import type { ConvertedType, DecodedArray, FieldRepetitionType, KeyValue, LogicalType, ParquetType } from 'hyparquet'
|
2025-04-08 10:22:30 +00:00
|
|
|
|
|
|
|
|
export interface ParquetWriteOptions {
|
|
|
|
|
writer: Writer
|
|
|
|
|
columnData: ColumnData[]
|
|
|
|
|
compressed?: boolean
|
|
|
|
|
statistics?: boolean
|
|
|
|
|
rowGroupSize?: number
|
|
|
|
|
kvMetadata?: KeyValue[]
|
|
|
|
|
}
|
2025-03-26 07:45:22 +00:00
|
|
|
|
|
|
|
|
export interface ColumnData {
|
|
|
|
|
name: string
|
|
|
|
|
data: DecodedArray
|
2025-04-11 08:41:56 +00:00
|
|
|
// fields from SchemaElement:
|
2025-03-28 23:13:27 +00:00
|
|
|
type?: ParquetType
|
2025-04-11 08:41:56 +00:00
|
|
|
type_length?: number
|
|
|
|
|
repetition_type?: FieldRepetitionType
|
|
|
|
|
converted_type?: ConvertedType
|
|
|
|
|
scale?: number
|
|
|
|
|
precision?: number
|
|
|
|
|
field_id?: number
|
|
|
|
|
logical_type?: LogicalType
|
2025-03-26 07:45:22 +00:00
|
|
|
}
|
2025-03-25 17:27:15 +00:00
|
|
|
|
|
|
|
|
export interface Writer {
|
|
|
|
|
buffer: ArrayBuffer
|
|
|
|
|
offset: number
|
2025-04-08 06:14:48 +00:00
|
|
|
view: DataView
|
|
|
|
|
ensure(size: number): void
|
|
|
|
|
finish(): void
|
2025-03-25 20:36:18 +00:00
|
|
|
getBuffer(): ArrayBuffer
|
2025-03-25 17:27:15 +00:00
|
|
|
appendUint8(value: number): void
|
|
|
|
|
appendUint32(value: number): void
|
2025-03-25 23:42:52 +00:00
|
|
|
appendInt32(value: number): void
|
|
|
|
|
appendInt64(value: bigint): void
|
2025-04-08 11:20:32 +00:00
|
|
|
appendFloat32(value: number): void
|
2025-03-25 17:27:15 +00:00
|
|
|
appendFloat64(value: number): void
|
|
|
|
|
appendBuffer(buffer: ArrayBuffer): void
|
2025-03-26 03:15:14 +00:00
|
|
|
appendBytes(value: Uint8Array): void
|
2025-03-25 17:27:15 +00:00
|
|
|
appendVarInt(value: number): void
|
|
|
|
|
appendVarBigInt(value: bigint): void
|
|
|
|
|
}
|