@dobesv/parquets
Version:
TypeScript implementation of the Parquet file format, based on parquet.js
47 lines (46 loc) • 1.36 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { ParquetSchema } from './schema';
import { RowGroup } from './thrift';
import { ParquetWriteBuffer } from './shred';
export interface ParquetWriterOptions {
baseOffset?: number;
rowGroupSize?: number;
pageSize?: number;
useDataPageV2?: boolean;
flags?: string;
encoding?: BufferEncoding;
fd?: number;
mode?: number;
autoClose?: boolean;
start?: number;
}
/**
* Parquet File Magic String
*/
export declare const PARQUET_MAGIC = "PAR1";
/**
* Parquet Version
*/
export declare const PARQUET_VERSION = 1;
/**
* Default Page and Row Group sizes
*/
export declare const PARQUET_DEFAULT_PAGE_SIZE = 8192;
export declare const PARQUET_DEFAULT_ROW_GROUP_SIZE = 4096;
/**
* Repetition and Definition Level encodings
*/
export declare const PARQUET_RDLVL_TYPE = "INT32";
export declare const PARQUET_RDLVL_ENCODING = "RLE";
/**
* Encode a list of column values into a parquet row group
*/
export declare function encodeRowGroup(schema: ParquetSchema, data: ParquetWriteBuffer, opts: ParquetWriterOptions): {
body: Buffer;
metadata: RowGroup;
};
/**
* Encode a parquet file metadata footer
*/
export declare function encodeFooter(schema: ParquetSchema, rowCount: number, rowGroups: RowGroup[], userMetadata: Record<string, string>): Buffer;