hyparquet-writer
Version:
Parquet file writer for JavaScript
98 lines • 4.14 kB
TypeScript
/**
* @import {ColumnChunk, CompressionCodec, FileMetaData, KeyValue, RowGroup, SchemaElement, SchemaTree} from 'hyparquet'
* @import {ColumnEncoder, ColumnSource, Compressors, PageIndexes, Writer} from '../src/types.js'
*/
/**
* ParquetWriter class allows incremental writing of parquet files.
*
* @param {object} options
* @param {Writer} options.writer
* @param {SchemaElement[]} options.schema
* @param {CompressionCodec} [options.codec]
* @param {Compressors} [options.compressors]
* @param {boolean} [options.statistics]
* @param {KeyValue[]} [options.kvMetadata]
*/
export function ParquetWriter({ writer, schema, codec, compressors, statistics, kvMetadata }: {
writer: Writer;
schema: SchemaElement[];
codec?: import("hyparquet/src/types.js").CompressionCodec | undefined;
compressors?: Compressors | undefined;
statistics?: boolean | undefined;
kvMetadata?: import("hyparquet/src/types.js").KeyValue[] | undefined;
}): void;
export class ParquetWriter {
/**
* @import {ColumnChunk, CompressionCodec, FileMetaData, KeyValue, RowGroup, SchemaElement, SchemaTree} from 'hyparquet'
* @import {ColumnEncoder, ColumnSource, Compressors, PageIndexes, Writer} from '../src/types.js'
*/
/**
* ParquetWriter class allows incremental writing of parquet files.
*
* @param {object} options
* @param {Writer} options.writer
* @param {SchemaElement[]} options.schema
* @param {CompressionCodec} [options.codec]
* @param {Compressors} [options.compressors]
* @param {boolean} [options.statistics]
* @param {KeyValue[]} [options.kvMetadata]
*/
constructor({ writer, schema, codec, compressors, statistics, kvMetadata }: {
writer: Writer;
schema: SchemaElement[];
codec?: import("hyparquet/src/types.js").CompressionCodec | undefined;
compressors?: Compressors | undefined;
statistics?: boolean | undefined;
kvMetadata?: import("hyparquet/src/types.js").KeyValue[] | undefined;
});
writer: Writer;
schema: import("hyparquet/src/types.js").SchemaElement[];
codec: import("hyparquet/src/types.js").CompressionCodec;
compressors: {
UNCOMPRESSED?: import("../src/types.js").Compressor | undefined;
SNAPPY: import("../src/types.js").Compressor;
GZIP?: import("../src/types.js").Compressor | undefined;
LZO?: import("../src/types.js").Compressor | undefined;
BROTLI?: import("../src/types.js").Compressor | undefined;
LZ4?: import("../src/types.js").Compressor | undefined;
ZSTD?: import("../src/types.js").Compressor | undefined;
LZ4_RAW?: import("../src/types.js").Compressor | undefined;
};
statistics: boolean;
kvMetadata: import("hyparquet/src/types.js").KeyValue[] | undefined;
/** @type {RowGroup[]} */
row_groups: RowGroup[];
num_rows: bigint;
/** @type {PageIndexes[]} */
pendingIndexes: PageIndexes[];
/**
* Write data to the file.
* Will split data into row groups of the specified size.
* Calls writer.flush() (if defined) after each row group; if it returns a
* Promise, subsequent row groups await it before encoding more data.
*
* @param {object} options
* @param {ColumnSource[]} options.columnData
* @param {number | number[]} [options.rowGroupSize]
* @param {number} [options.pageSize]
* @returns {void | Promise<void>}
*/
write({ columnData, rowGroupSize, pageSize }: {
columnData: ColumnSource[];
rowGroupSize?: number | number[] | undefined;
pageSize?: number | undefined;
}): void | Promise<void>;
/**
* Finish writing the file.
*
* @returns {void | Promise<void>}
*/
finish(): void | Promise<void>;
}
import type { Writer } from '../src/types.js';
import type { SchemaElement } from 'hyparquet';
import type { Compressors } from '../src/types.js';
import type { RowGroup } from 'hyparquet';
import type { PageIndexes } from '../src/types.js';
import type { ColumnSource } from '../src/types.js';
//# sourceMappingURL=parquet-writer.d.ts.map