parquets
Version:
TypeScript implementation of the Parquet file format, based on parquet.js
48 lines (47 loc) • 1.69 kB
TypeScript
export declare type ParquetCodec = 'PLAIN' | 'RLE';
export declare type ParquetCompression = 'UNCOMPRESSED' | 'GZIP' | 'SNAPPY' | 'LZO' | 'BROTLI' | 'LZ4';
export declare type RepetitionType = 'REQUIRED' | 'OPTIONAL' | 'REPEATED';
export declare type ParquetType = PrimitiveType | OriginalType;
export declare type PrimitiveType = 'BOOLEAN' | 'INT32' | 'INT64' | 'INT96' | 'FLOAT' | 'DOUBLE' | 'BYTE_ARRAY' | 'FIXED_LEN_BYTE_ARRAY';
export declare type OriginalType = 'UTF8' | 'DATE' | 'TIME_MILLIS' | 'TIME_MICROS' | 'TIMESTAMP_MILLIS' | 'TIMESTAMP_MICROS' | 'UINT_8' | 'UINT_16' | 'UINT_32' | 'UINT_64' | 'INT_8' | 'INT_16' | 'INT_32' | 'INT_64' | 'JSON' | 'BSON' | 'INTERVAL';
export interface SchemaDefinition {
[string: string]: FieldDefinition;
}
export interface FieldDefinition {
type?: ParquetType;
typeLength?: number;
encoding?: ParquetCodec;
compression?: ParquetCompression;
optional?: boolean;
repeated?: boolean;
fields?: SchemaDefinition;
}
export interface ParquetField {
name: string;
path: string[];
key: string;
primitiveType?: PrimitiveType;
originalType?: OriginalType;
repetitionType: RepetitionType;
typeLength?: number;
encoding?: ParquetCodec;
compression?: ParquetCompression;
rLevelMax: number;
dLevelMax: number;
isNested?: boolean;
fieldCount?: number;
fields?: Record<string, ParquetField>;
}
export interface ParquetBuffer {
rowCount?: number;
columnData?: Record<string, ParquetData>;
}
export interface ParquetData {
dlevels: number[];
rlevels: number[];
values: any[];
count: number;
}
export interface ParquetRecord {
[key: string]: any;
}