@loaders.gl/parquet 3.4.0-alpha.2 → 3.4.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.min.js +21 -28
- package/dist/dist.min.js.map +3 -3
- package/dist/es5/constants.js +0 -2
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +0 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/arrow/convert-row-group-to-columns.js +0 -1
- package/dist/es5/lib/arrow/convert-row-group-to-columns.js.map +1 -1
- package/dist/es5/lib/arrow/convert-schema-from-parquet.js +1 -1
- package/dist/es5/lib/arrow/convert-schema-from-parquet.js.map +1 -1
- package/dist/es5/lib/arrow/convert-schema-to-parquet.js +0 -2
- package/dist/es5/lib/arrow/convert-schema-to-parquet.js.map +1 -1
- package/dist/es5/lib/geo/decode-geo-metadata.js +0 -5
- package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -1
- package/dist/es5/lib/geo/geoparquet-schema.js.map +1 -1
- package/dist/es5/lib/parsers/parse-parquet-to-columns.js +115 -119
- package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/es5/lib/parsers/parse-parquet-to-rows.js +105 -109
- package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -1
- package/dist/es5/lib/wasm/encode-parquet-wasm.js +14 -16
- package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +16 -18
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +6 -8
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
- package/dist/es5/lib/wasm/parse-parquet-wasm.js +16 -18
- package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/es5/parquet-loader.js +1 -2
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-loader.js +1 -2
- package/dist/es5/parquet-wasm-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-writer.js +1 -1
- package/dist/es5/parquet-wasm-writer.js.map +1 -1
- package/dist/es5/parquet-writer.js +1 -1
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/es5/parquetjs/codecs/index.js +0 -1
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/plain.js +0 -3
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +0 -4
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +49 -64
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/encoder/parquet-encoder.js +301 -345
- package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js +4 -4
- package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/es5/parquetjs/parser/decoders.js +244 -261
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-reader.js +396 -428
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/es5/parquetjs/schema/declare.js +1 -3
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +2 -12
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +2 -14
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +6 -11
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/utils/file-utils.js +0 -1
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/read-utils.js +0 -7
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/es5/workers/parquet-worker.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +0 -3
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/arrow/convert-row-group-to-columns.js +0 -2
- package/dist/esm/lib/arrow/convert-row-group-to-columns.js.map +1 -1
- package/dist/esm/lib/arrow/convert-schema-from-parquet.js +0 -2
- package/dist/esm/lib/arrow/convert-schema-from-parquet.js.map +1 -1
- package/dist/esm/lib/arrow/convert-schema-to-parquet.js +0 -3
- package/dist/esm/lib/arrow/convert-schema-to-parquet.js.map +1 -1
- package/dist/esm/lib/geo/decode-geo-metadata.js +0 -6
- package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -1
- package/dist/esm/lib/geo/geoparquet-schema.js +0 -2
- package/dist/esm/lib/geo/geoparquet-schema.js.map +1 -1
- package/dist/esm/lib/parsers/parse-parquet-to-columns.js +0 -2
- package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/esm/lib/parsers/parse-parquet-to-rows.js +0 -1
- package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js +0 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js +0 -1
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
- package/dist/esm/lib/wasm/parse-parquet-wasm.js +0 -3
- package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/esm/parquet-loader.js +1 -3
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-loader.js +1 -3
- package/dist/esm/parquet-wasm-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-writer.js +1 -2
- package/dist/esm/parquet-wasm-writer.js.map +1 -1
- package/dist/esm/parquet-writer.js +1 -2
- package/dist/esm/parquet-writer.js.map +1 -1
- package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/esm/parquetjs/codecs/index.js +0 -2
- package/dist/esm/parquetjs/codecs/index.js.map +1 -1
- package/dist/esm/parquetjs/codecs/plain.js +0 -4
- package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
- package/dist/esm/parquetjs/codecs/rle.js +0 -6
- package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
- package/dist/esm/parquetjs/compression.js +2 -16
- package/dist/esm/parquetjs/compression.js.map +1 -1
- package/dist/esm/parquetjs/encoder/parquet-encoder.js +0 -38
- package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DateType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ListType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MapType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/NullType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageType.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/StringType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Type.js +3 -4
- package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/index.js +0 -1
- package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/esm/parquetjs/parser/decoders.js +1 -18
- package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-reader.js +0 -13
- package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/esm/parquetjs/schema/declare.js +0 -2
- package/dist/esm/parquetjs/schema/declare.js.map +1 -1
- package/dist/esm/parquetjs/schema/schema.js +0 -10
- package/dist/esm/parquetjs/schema/schema.js.map +1 -1
- package/dist/esm/parquetjs/schema/shred.js +1 -15
- package/dist/esm/parquetjs/schema/shred.js.map +1 -1
- package/dist/esm/parquetjs/schema/types.js +6 -10
- package/dist/esm/parquetjs/schema/types.js.map +1 -1
- package/dist/esm/parquetjs/utils/file-utils.js +0 -1
- package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/esm/parquetjs/utils/read-utils.js +0 -8
- package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/parquet-worker.js +25 -32
- package/dist/parquet-worker.js.map +3 -3
- package/dist/parquetjs/compression.d.ts +3 -0
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +9 -5
- package/dist/parquetjs/schema/types.js +4 -6
- package/package.json +6 -9
- package/src/parquetjs/compression.ts +10 -6
- package/src/parquetjs/schema/types.ts +4 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
|
|
3
2
|
import { PARQUET_CODECS } from '../codecs';
|
|
4
3
|
import * as Compression from '../compression';
|
|
5
4
|
import * as Shred from '../schema/shred';
|
|
@@ -7,14 +6,10 @@ import { ColumnChunk, ColumnMetaData, CompressionCodec, ConvertedType, DataPageH
|
|
|
7
6
|
import { osopen, oswrite, osclose } from '../utils/file-utils';
|
|
8
7
|
import { getBitWidth, serializeThrift } from '../utils/read-utils';
|
|
9
8
|
import Int64 from 'node-int64';
|
|
10
|
-
|
|
11
9
|
const PARQUET_MAGIC = 'PAR1';
|
|
12
|
-
|
|
13
10
|
const PARQUET_VERSION = 1;
|
|
14
|
-
|
|
15
11
|
const PARQUET_DEFAULT_PAGE_SIZE = 8192;
|
|
16
12
|
const PARQUET_DEFAULT_ROW_GROUP_SIZE = 4096;
|
|
17
|
-
|
|
18
13
|
const PARQUET_RDLVL_TYPE = 'INT32';
|
|
19
14
|
const PARQUET_RDLVL_ENCODING = 'RLE';
|
|
20
15
|
export class ParquetEncoder {
|
|
@@ -22,7 +17,6 @@ export class ParquetEncoder {
|
|
|
22
17
|
const outputStream = await osopen(path, opts);
|
|
23
18
|
return ParquetEncoder.openStream(schema, outputStream, opts);
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
static async openStream(schema, outputStream) {
|
|
27
21
|
let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
28
22
|
const envelopeWriter = await ParquetEnvelopeWriter.openStream(schema, outputStream, opts);
|
|
@@ -41,7 +35,6 @@ export class ParquetEncoder {
|
|
|
41
35
|
this.rowGroupSize = opts.rowGroupSize || PARQUET_DEFAULT_ROW_GROUP_SIZE;
|
|
42
36
|
this.closed = false;
|
|
43
37
|
this.userMetadata = {};
|
|
44
|
-
|
|
45
38
|
this.writeHeader();
|
|
46
39
|
}
|
|
47
40
|
async writeHeader() {
|
|
@@ -52,7 +45,6 @@ export class ParquetEncoder {
|
|
|
52
45
|
throw err;
|
|
53
46
|
}
|
|
54
47
|
}
|
|
55
|
-
|
|
56
48
|
async appendRow(row) {
|
|
57
49
|
if (this.closed) {
|
|
58
50
|
throw new Error('writer was closed');
|
|
@@ -62,7 +54,6 @@ export class ParquetEncoder {
|
|
|
62
54
|
this.rowBuffer = {};
|
|
63
55
|
}
|
|
64
56
|
}
|
|
65
|
-
|
|
66
57
|
async close(callback) {
|
|
67
58
|
if (this.closed) {
|
|
68
59
|
throw new Error('writer was closed');
|
|
@@ -73,25 +64,20 @@ export class ParquetEncoder {
|
|
|
73
64
|
}
|
|
74
65
|
await this.envelopeWriter.writeFooter(this.userMetadata);
|
|
75
66
|
await this.envelopeWriter.close();
|
|
76
|
-
|
|
77
67
|
if (callback) {
|
|
78
68
|
callback();
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
|
-
|
|
82
71
|
setMetadata(key, value) {
|
|
83
72
|
this.userMetadata[String(key)] = String(value);
|
|
84
73
|
}
|
|
85
|
-
|
|
86
74
|
setRowGroupSize(cnt) {
|
|
87
75
|
this.rowGroupSize = cnt;
|
|
88
76
|
}
|
|
89
|
-
|
|
90
77
|
setPageSize(cnt) {
|
|
91
78
|
this.envelopeWriter.setPageSize(cnt);
|
|
92
79
|
}
|
|
93
80
|
}
|
|
94
|
-
|
|
95
81
|
export class ParquetEnvelopeWriter {
|
|
96
82
|
static async openStream(schema, outputStream, opts) {
|
|
97
83
|
const writeFn = oswrite.bind(undefined, outputStream);
|
|
@@ -120,11 +106,9 @@ export class ParquetEnvelopeWriter {
|
|
|
120
106
|
this.offset += buf.length;
|
|
121
107
|
return this.write(buf);
|
|
122
108
|
}
|
|
123
|
-
|
|
124
109
|
writeHeader() {
|
|
125
110
|
return this.writeSection(Buffer.from(PARQUET_MAGIC));
|
|
126
111
|
}
|
|
127
|
-
|
|
128
112
|
async writeRowGroup(records) {
|
|
129
113
|
const rgroup = await encodeRowGroup(this.schema, records, {
|
|
130
114
|
baseOffset: this.offset,
|
|
@@ -135,26 +119,22 @@ export class ParquetEnvelopeWriter {
|
|
|
135
119
|
this.rowGroups.push(rgroup.metadata);
|
|
136
120
|
return await this.writeSection(rgroup.body);
|
|
137
121
|
}
|
|
138
|
-
|
|
139
122
|
writeFooter(userMetadata) {
|
|
140
123
|
if (!userMetadata) {
|
|
141
124
|
userMetadata = {};
|
|
142
125
|
}
|
|
143
126
|
return this.writeSection(encodeFooter(this.schema, this.rowCount, this.rowGroups, userMetadata));
|
|
144
127
|
}
|
|
145
|
-
|
|
146
128
|
setPageSize(cnt) {
|
|
147
129
|
this.pageSize = cnt;
|
|
148
130
|
}
|
|
149
131
|
}
|
|
150
|
-
|
|
151
132
|
function encodeValues(type, encoding, values, opts) {
|
|
152
133
|
if (!(encoding in PARQUET_CODECS)) {
|
|
153
134
|
throw new Error("invalid encoding: ".concat(encoding));
|
|
154
135
|
}
|
|
155
136
|
return PARQUET_CODECS[encoding].encodeValues(type, values, opts);
|
|
156
137
|
}
|
|
157
|
-
|
|
158
138
|
async function encodeDataPage(column, data) {
|
|
159
139
|
let rLevelsBuf = Buffer.alloc(0);
|
|
160
140
|
if (column.rLevelMax > 0) {
|
|
@@ -162,22 +142,18 @@ async function encodeDataPage(column, data) {
|
|
|
162
142
|
bitWidth: getBitWidth(column.rLevelMax)
|
|
163
143
|
});
|
|
164
144
|
}
|
|
165
|
-
|
|
166
145
|
let dLevelsBuf = Buffer.alloc(0);
|
|
167
146
|
if (column.dLevelMax > 0) {
|
|
168
147
|
dLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.dlevels, {
|
|
169
148
|
bitWidth: getBitWidth(column.dLevelMax)
|
|
170
149
|
});
|
|
171
150
|
}
|
|
172
|
-
|
|
173
151
|
const valuesBuf = encodeValues(column.primitiveType, column.encoding, data.values, {
|
|
174
152
|
typeLength: column.typeLength,
|
|
175
153
|
bitWidth: column.typeLength
|
|
176
154
|
});
|
|
177
155
|
const dataBuf = Buffer.concat([rLevelsBuf, dLevelsBuf, valuesBuf]);
|
|
178
|
-
|
|
179
156
|
const compressedBuf = await Compression.deflate(column.compression, dataBuf);
|
|
180
|
-
|
|
181
157
|
const header = new PageHeader({
|
|
182
158
|
type: PageType.DATA_PAGE,
|
|
183
159
|
data_page_header: new DataPageHeader({
|
|
@@ -186,11 +162,9 @@ async function encodeDataPage(column, data) {
|
|
|
186
162
|
definition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING],
|
|
187
163
|
repetition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING]
|
|
188
164
|
}),
|
|
189
|
-
|
|
190
165
|
uncompressed_page_size: dataBuf.length,
|
|
191
166
|
compressed_page_size: compressedBuf.length
|
|
192
167
|
});
|
|
193
|
-
|
|
194
168
|
const headerBuf = serializeThrift(header);
|
|
195
169
|
const page = Buffer.concat([headerBuf, compressedBuf]);
|
|
196
170
|
return {
|
|
@@ -199,15 +173,12 @@ async function encodeDataPage(column, data) {
|
|
|
199
173
|
page
|
|
200
174
|
};
|
|
201
175
|
}
|
|
202
|
-
|
|
203
176
|
async function encodeDataPageV2(column, data, rowCount) {
|
|
204
177
|
const valuesBuf = encodeValues(column.primitiveType, column.encoding, data.values, {
|
|
205
178
|
typeLength: column.typeLength,
|
|
206
179
|
bitWidth: column.typeLength
|
|
207
180
|
});
|
|
208
|
-
|
|
209
181
|
const compressedBuf = await Compression.deflate(column.compression, valuesBuf);
|
|
210
|
-
|
|
211
182
|
let rLevelsBuf = Buffer.alloc(0);
|
|
212
183
|
if (column.rLevelMax > 0) {
|
|
213
184
|
rLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.rlevels, {
|
|
@@ -222,7 +193,6 @@ async function encodeDataPageV2(column, data, rowCount) {
|
|
|
222
193
|
disableEnvelope: true
|
|
223
194
|
});
|
|
224
195
|
}
|
|
225
|
-
|
|
226
196
|
const header = new PageHeader({
|
|
227
197
|
type: PageType.DATA_PAGE_V2,
|
|
228
198
|
data_page_header_v2: new DataPageHeaderV2({
|
|
@@ -237,7 +207,6 @@ async function encodeDataPageV2(column, data, rowCount) {
|
|
|
237
207
|
uncompressed_page_size: rLevelsBuf.length + dLevelsBuf.length + valuesBuf.length,
|
|
238
208
|
compressed_page_size: rLevelsBuf.length + dLevelsBuf.length + compressedBuf.length
|
|
239
209
|
});
|
|
240
|
-
|
|
241
210
|
const headerBuf = serializeThrift(header);
|
|
242
211
|
const page = Buffer.concat([headerBuf, rLevelsBuf, dLevelsBuf, compressedBuf]);
|
|
243
212
|
return {
|
|
@@ -246,7 +215,6 @@ async function encodeDataPageV2(column, data, rowCount) {
|
|
|
246
215
|
page
|
|
247
216
|
};
|
|
248
217
|
}
|
|
249
|
-
|
|
250
218
|
async function encodeColumnChunk(column, buffer, offset, opts) {
|
|
251
219
|
const data = buffer.columnData[column.path.join()];
|
|
252
220
|
const baseOffset = (opts.baseOffset || 0) + offset;
|
|
@@ -259,7 +227,6 @@ async function encodeColumnChunk(column, buffer, offset, opts) {
|
|
|
259
227
|
total_uncompressed_size += result.header.uncompressed_page_size + result.headerSize;
|
|
260
228
|
total_compressed_size += result.header.compressed_page_size + result.headerSize;
|
|
261
229
|
}
|
|
262
|
-
|
|
263
230
|
const metadata = new ColumnMetaData({
|
|
264
231
|
path_in_schema: column.path,
|
|
265
232
|
num_values: data.count,
|
|
@@ -270,10 +237,8 @@ async function encodeColumnChunk(column, buffer, offset, opts) {
|
|
|
270
237
|
type: Type[column.primitiveType],
|
|
271
238
|
codec: CompressionCodec[column.compression]
|
|
272
239
|
});
|
|
273
|
-
|
|
274
240
|
metadata.encodings.push(Encoding[PARQUET_RDLVL_ENCODING]);
|
|
275
241
|
metadata.encodings.push(Encoding[column.encoding]);
|
|
276
|
-
|
|
277
242
|
const metadataOffset = baseOffset + pageBuf.length;
|
|
278
243
|
const body = Buffer.concat([pageBuf, serializeThrift(metadata)]);
|
|
279
244
|
return {
|
|
@@ -282,7 +247,6 @@ async function encodeColumnChunk(column, buffer, offset, opts) {
|
|
|
282
247
|
metadataOffset
|
|
283
248
|
};
|
|
284
249
|
}
|
|
285
|
-
|
|
286
250
|
async function encodeRowGroup(schema, data, opts) {
|
|
287
251
|
const metadata = new RowGroup({
|
|
288
252
|
num_rows: data.rowCount,
|
|
@@ -294,7 +258,6 @@ async function encodeRowGroup(schema, data, opts) {
|
|
|
294
258
|
if (field.isNested) {
|
|
295
259
|
continue;
|
|
296
260
|
}
|
|
297
|
-
|
|
298
261
|
const cchunkData = await encodeColumnChunk(field, data, body.length, opts);
|
|
299
262
|
const cchunk = new ColumnChunk({
|
|
300
263
|
file_offset: cchunkData.metadataOffset,
|
|
@@ -309,7 +272,6 @@ async function encodeRowGroup(schema, data, opts) {
|
|
|
309
272
|
metadata
|
|
310
273
|
};
|
|
311
274
|
}
|
|
312
|
-
|
|
313
275
|
function encodeFooter(schema, rowCount, rowGroups, userMetadata) {
|
|
314
276
|
const metadata = new FileMetaData({
|
|
315
277
|
version: PARQUET_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-encoder.js","names":["PARQUET_CODECS","Compression","Shred","ColumnChunk","ColumnMetaData","CompressionCodec","ConvertedType","DataPageHeader","DataPageHeaderV2","Encoding","FieldRepetitionType","FileMetaData","KeyValue","PageHeader","PageType","RowGroup","SchemaElement","Type","osopen","oswrite","osclose","getBitWidth","serializeThrift","Int64","PARQUET_MAGIC","PARQUET_VERSION","PARQUET_DEFAULT_PAGE_SIZE","PARQUET_DEFAULT_ROW_GROUP_SIZE","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING","ParquetEncoder","openFile","schema","path","opts","outputStream","openStream","envelopeWriter","ParquetEnvelopeWriter","constructor","rowBuffer","rowGroupSize","closed","userMetadata","writeHeader","err","close","appendRow","row","Error","shredRecord","rowCount","callback","writeFooter","setMetadata","key","value","String","setRowGroupSize","cnt","setPageSize","writeFn","bind","undefined","closeFn","fileOffset","write","offset","rowGroups","pageSize","useDataPageV2","Boolean","writeSection","buf","length","Buffer","from","writeRowGroup","records","rgroup","encodeRowGroup","baseOffset","push","metadata","body","encodeFooter","encodeValues","type","encoding","values","encodeDataPage","column","data","rLevelsBuf","alloc","rLevelMax","rlevels","bitWidth","dLevelsBuf","dLevelMax","dlevels","valuesBuf","primitiveType","typeLength","dataBuf","concat","compressedBuf","deflate","compression","header","DATA_PAGE","data_page_header","num_values","count","definition_level_encoding","repetition_level_encoding","uncompressed_page_size","compressed_page_size","headerBuf","page","headerSize","encodeDataPageV2","disableEnvelope","DATA_PAGE_V2","data_page_header_v2","num_nulls","num_rows","definition_levels_byte_length","repetition_levels_byte_length","is_compressed","encodeColumnChunk","buffer","columnData","join","pageBuf","total_uncompressed_size","total_compressed_size","result","path_in_schema","data_page_offset","encodings","codec","metadataOffset","columns","total_byte_size","field","fieldList","isNested","cchunkData","cchunk","file_offset","meta_data","Number","version","created_by","row_groups","key_value_metadata","kv","schemaRoot","name","num_children","Object","keys","fields","relt","repetitionType","schemaElem","repetition_type","fieldCount","originalType","converted_type","type_length","metadataEncoded","footerEncoded","copy","writeUInt32LE"],"sources":["../../../../src/parquetjs/encoder/parquet-encoder.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport {stream} from '@loaders.gl/loader-utils';\nimport {ParquetCodecOptions, PARQUET_CODECS} from '../codecs';\nimport * as Compression from '../compression';\nimport {\n ParquetBuffer,\n ParquetCodec,\n ParquetData,\n ParquetField,\n PrimitiveType\n} from '../schema/declare';\nimport {ParquetSchema} from '../schema/schema';\nimport * as Shred from '../schema/shred';\nimport {\n ColumnChunk,\n ColumnMetaData,\n CompressionCodec,\n ConvertedType,\n DataPageHeader,\n DataPageHeaderV2,\n Encoding,\n FieldRepetitionType,\n FileMetaData,\n KeyValue,\n PageHeader,\n PageType,\n RowGroup,\n SchemaElement,\n Type\n} from '../parquet-thrift';\nimport {osopen, oswrite, osclose} from '../utils/file-utils';\nimport {getBitWidth, serializeThrift} from '../utils/read-utils';\nimport Int64 from 'node-int64';\n\n/**\n * Parquet File Magic String\n */\nconst PARQUET_MAGIC = 'PAR1';\n\n/**\n * Parquet File Format Version\n */\nconst PARQUET_VERSION = 1;\n\n/**\n * Default Page and Row Group sizes\n */\nconst PARQUET_DEFAULT_PAGE_SIZE = 8192;\nconst PARQUET_DEFAULT_ROW_GROUP_SIZE = 4096;\n\n/**\n * Repetition and Definition Level Encoding\n */\nconst PARQUET_RDLVL_TYPE = 'INT32';\nconst PARQUET_RDLVL_ENCODING = 'RLE';\n\nexport interface ParquetEncoderOptions {\n baseOffset?: number;\n rowGroupSize?: number;\n pageSize?: number;\n useDataPageV2?: boolean;\n\n // Write Stream Options\n flags?: string;\n encoding?: string;\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\n}\n\n/**\n * Write a parquet file to an output stream. The ParquetEncoder will perform\n * buffering/batching for performance, so close() must be called after all rows\n * are written.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class ParquetEncoder<T> {\n /**\n * Convenience method to create a new buffered parquet writer that writes to\n * the specified file\n */\n static async openFile<T>(\n schema: ParquetSchema,\n path: string,\n opts?: ParquetEncoderOptions\n ): Promise<ParquetEncoder<T>> {\n const outputStream = await osopen(path, opts);\n return ParquetEncoder.openStream(schema, outputStream, opts);\n }\n\n /**\n * Convenience method to create a new buffered parquet writer that writes to\n * the specified stream\n */\n static async openStream<T>(\n schema: ParquetSchema,\n outputStream: stream.Writable,\n opts: ParquetEncoderOptions = {}\n ): Promise<ParquetEncoder<T>> {\n const envelopeWriter = await ParquetEnvelopeWriter.openStream(schema, outputStream, opts);\n return new ParquetEncoder(schema, envelopeWriter, opts);\n }\n\n public schema: ParquetSchema;\n public envelopeWriter: ParquetEnvelopeWriter;\n public rowBuffer: ParquetBuffer;\n public rowGroupSize: number;\n public closed: boolean;\n public userMetadata: Record<string, string>;\n\n /**\n * Create a new buffered parquet writer for a given envelope writer\n */\n constructor(\n schema: ParquetSchema,\n envelopeWriter: ParquetEnvelopeWriter,\n opts: ParquetEncoderOptions\n ) {\n this.schema = schema;\n this.envelopeWriter = envelopeWriter;\n // @ts-ignore Row buffer typings...\n this.rowBuffer = {};\n this.rowGroupSize = opts.rowGroupSize || PARQUET_DEFAULT_ROW_GROUP_SIZE;\n this.closed = false;\n this.userMetadata = {};\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.writeHeader();\n }\n\n async writeHeader(): Promise<void> {\n // TODO - better not mess with promises in the constructor\n try {\n await this.envelopeWriter.writeHeader();\n } catch (err) {\n await this.envelopeWriter.close();\n throw err;\n }\n }\n\n /**\n * Append a single row to the parquet file. Rows are buffered in memory until\n * rowGroupSize rows are in the buffer or close() is called\n */\n async appendRow<T>(row: T): Promise<void> {\n if (this.closed) {\n throw new Error('writer was closed');\n }\n Shred.shredRecord(this.schema, row, this.rowBuffer);\n if (this.rowBuffer.rowCount >= this.rowGroupSize) {\n // @ts-ignore\n this.rowBuffer = {};\n }\n }\n\n /**\n * Finish writing the parquet file and commit the footer to disk. This method\n * MUST be called after you are finished adding rows. You must not call this\n * method twice on the same object or add any rows after the close() method has\n * been called\n */\n async close(callback?: () => void): Promise<void> {\n if (this.closed) {\n throw new Error('writer was closed');\n }\n\n this.closed = true;\n\n if (this.rowBuffer.rowCount > 0 || this.rowBuffer.rowCount >= this.rowGroupSize) {\n // @ts-ignore\n this.rowBuffer = {};\n }\n\n await this.envelopeWriter.writeFooter(this.userMetadata);\n await this.envelopeWriter.close();\n // this.envelopeWriter = null;\n\n if (callback) {\n callback();\n }\n }\n\n /**\n * Add key<>value metadata to the file\n */\n setMetadata(key: string, value: string): void {\n // TODO: value to be any, obj -> JSON\n this.userMetadata[String(key)] = String(value);\n }\n\n /**\n * Set the parquet row group size. This values controls the maximum number\n * of rows that are buffered in memory at any given time as well as the number\n * of rows that are co-located on disk. A higher value is generally better for\n * read-time I/O performance at the tradeoff of write-time memory usage.\n */\n setRowGroupSize(cnt: number): void {\n this.rowGroupSize = cnt;\n }\n\n /**\n * Set the parquet data page size. The data page size controls the maximum\n * number of column values that are written to disk as a consecutive array\n */\n setPageSize(cnt: number): void {\n this.envelopeWriter.setPageSize(cnt);\n }\n}\n\n/**\n * Create a parquet file from a schema and a number of row groups. This class\n * performs direct, unbuffered writes to the underlying output stream and is\n * intendend for advanced and internal users; the writeXXX methods must be\n * called in the correct order to produce a valid file.\n */\nexport class ParquetEnvelopeWriter {\n /**\n * Create a new parquet envelope writer that writes to the specified stream\n */\n static async openStream(\n schema: ParquetSchema,\n outputStream: stream.Writable,\n opts: ParquetEncoderOptions\n ): Promise<ParquetEnvelopeWriter> {\n const writeFn = oswrite.bind(undefined, outputStream);\n const closeFn = osclose.bind(undefined, outputStream);\n return new ParquetEnvelopeWriter(schema, writeFn, closeFn, 0, opts);\n }\n\n public schema: ParquetSchema;\n public write: (buf: Buffer) => Promise<void>;\n public close: () => Promise<void>;\n public offset: number;\n public rowCount: number;\n public rowGroups: RowGroup[];\n public pageSize: number;\n public useDataPageV2: boolean;\n\n constructor(\n schema: ParquetSchema,\n writeFn: (buf: Buffer) => Promise<void>,\n closeFn: () => Promise<void>,\n fileOffset: number,\n opts: ParquetEncoderOptions\n ) {\n this.schema = schema;\n this.write = writeFn;\n this.close = closeFn;\n this.offset = fileOffset;\n this.rowCount = 0;\n this.rowGroups = [];\n this.pageSize = opts.pageSize || PARQUET_DEFAULT_PAGE_SIZE;\n this.useDataPageV2 = 'useDataPageV2' in opts ? Boolean(opts.useDataPageV2) : false;\n }\n\n writeSection(buf: Buffer): Promise<void> {\n this.offset += buf.length;\n return this.write(buf);\n }\n\n /**\n * Encode the parquet file header\n */\n writeHeader(): Promise<void> {\n return this.writeSection(Buffer.from(PARQUET_MAGIC));\n }\n\n /**\n * Encode a parquet row group. The records object should be created using the\n * shredRecord method\n */\n async writeRowGroup(records: ParquetBuffer): Promise<void> {\n const rgroup = await encodeRowGroup(this.schema, records, {\n baseOffset: this.offset,\n pageSize: this.pageSize,\n useDataPageV2: this.useDataPageV2\n });\n\n this.rowCount += records.rowCount;\n this.rowGroups.push(rgroup.metadata);\n return await this.writeSection(rgroup.body);\n }\n\n /**\n * Write the parquet file footer\n */\n writeFooter(userMetadata: Record<string, string>): Promise<void> {\n if (!userMetadata) {\n // tslint:disable-next-line:no-parameter-reassignment\n userMetadata = {};\n }\n\n return this.writeSection(\n encodeFooter(this.schema, this.rowCount, this.rowGroups, userMetadata)\n );\n }\n\n /**\n * Set the parquet data page size. The data page size controls the maximum\n * number of column values that are written to disk as a consecutive array\n */\n setPageSize(cnt: number): void {\n this.pageSize = cnt;\n }\n}\n\n/**\n * Create a parquet transform stream\nexport class ParquetTransformer<T> extends stream.Transform {\n public writer: ParquetEncoder<T>;\n\n constructor(schema: ParquetSchema, opts: ParquetEncoderOptions = {}) {\n super({objectMode: true});\n\n const writeProxy = (function (t: ParquetTransformer<any>) {\n return async function (b: any): Promise<void> {\n t.push(b);\n };\n })(this);\n\n this.writer = new ParquetEncoder(\n schema,\n new ParquetEnvelopeWriter(schema, writeProxy, async () => {}, 0, opts),\n opts\n );\n }\n\n // tslint:disable-next-line:function-name\n _transform(row: any, encoding: string, callback: (val?: any) => void): Promise<void> {\n if (row) {\n return this.writer.appendRow(row).then(callback);\n }\n callback();\n return Promise.resolve();\n }\n\n // tslint:disable-next-line:function-name\n async _flush(callback: (val?: any) => void) {\n await this.writer.close(callback);\n }\n}\n */\n\n/**\n * Encode a consecutive array of data using one of the parquet encodings\n */\nfunction encodeValues(\n type: PrimitiveType,\n encoding: ParquetCodec,\n values: any[],\n opts: ParquetCodecOptions\n) {\n if (!(encoding in PARQUET_CODECS)) {\n throw new Error(`invalid encoding: ${encoding}`);\n }\n return PARQUET_CODECS[encoding].encodeValues(type, values, opts);\n}\n\n/**\n * Encode a parquet data page\n */\nasync function encodeDataPage(\n column: ParquetField,\n data: ParquetData\n): Promise<{\n header: PageHeader;\n headerSize: number;\n page: Buffer;\n}> {\n /* encode repetition and definition levels */\n let rLevelsBuf = Buffer.alloc(0);\n if (column.rLevelMax > 0) {\n rLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.rlevels, {\n bitWidth: getBitWidth(column.rLevelMax)\n // disableEnvelope: false\n });\n }\n\n let dLevelsBuf = Buffer.alloc(0);\n if (column.dLevelMax > 0) {\n dLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.dlevels, {\n bitWidth: getBitWidth(column.dLevelMax)\n // disableEnvelope: false\n });\n }\n\n /* encode values */\n const valuesBuf = encodeValues(column.primitiveType!, column.encoding!, data.values, {\n typeLength: column.typeLength,\n bitWidth: column.typeLength\n });\n\n const dataBuf = Buffer.concat([rLevelsBuf, dLevelsBuf, valuesBuf]);\n\n // compression = column.compression === 'UNCOMPRESSED' ? (compression || 'UNCOMPRESSED') : column.compression;\n const compressedBuf = await Compression.deflate(column.compression!, dataBuf);\n\n /* build page header */\n const header = new PageHeader({\n type: PageType.DATA_PAGE,\n data_page_header: new DataPageHeader({\n num_values: data.count,\n encoding: Encoding[column.encoding!] as any,\n definition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING], // [PARQUET_RDLVL_ENCODING],\n repetition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING] // [PARQUET_RDLVL_ENCODING]\n }),\n uncompressed_page_size: dataBuf.length,\n compressed_page_size: compressedBuf.length\n });\n\n /* concat page header, repetition and definition levels and values */\n const headerBuf = serializeThrift(header);\n const page = Buffer.concat([headerBuf, compressedBuf]);\n\n return {header, headerSize: headerBuf.length, page};\n}\n\n/**\n * Encode a parquet data page (v2)\n */\nasync function encodeDataPageV2(\n column: ParquetField,\n data: ParquetData,\n rowCount: number\n): Promise<{\n header: PageHeader;\n headerSize: number;\n page: Buffer;\n}> {\n /* encode values */\n const valuesBuf = encodeValues(column.primitiveType!, column.encoding!, data.values, {\n typeLength: column.typeLength,\n bitWidth: column.typeLength\n });\n\n // compression = column.compression === 'UNCOMPRESSED' ? (compression || 'UNCOMPRESSED') : column.compression;\n const compressedBuf = await Compression.deflate(column.compression!, valuesBuf);\n\n /* encode repetition and definition levels */\n let rLevelsBuf = Buffer.alloc(0);\n if (column.rLevelMax > 0) {\n rLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.rlevels, {\n bitWidth: getBitWidth(column.rLevelMax),\n disableEnvelope: true\n });\n }\n\n let dLevelsBuf = Buffer.alloc(0);\n if (column.dLevelMax > 0) {\n dLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.dlevels, {\n bitWidth: getBitWidth(column.dLevelMax),\n disableEnvelope: true\n });\n }\n\n /* build page header */\n const header = new PageHeader({\n type: PageType.DATA_PAGE_V2,\n data_page_header_v2: new DataPageHeaderV2({\n num_values: data.count,\n num_nulls: data.count - data.values.length,\n num_rows: rowCount,\n encoding: Encoding[column.encoding!] as any,\n definition_levels_byte_length: dLevelsBuf.length,\n repetition_levels_byte_length: rLevelsBuf.length,\n is_compressed: column.compression !== 'UNCOMPRESSED'\n }),\n uncompressed_page_size: rLevelsBuf.length + dLevelsBuf.length + valuesBuf.length,\n compressed_page_size: rLevelsBuf.length + dLevelsBuf.length + compressedBuf.length\n });\n\n /* concat page header, repetition and definition levels and values */\n const headerBuf = serializeThrift(header);\n const page = Buffer.concat([headerBuf, rLevelsBuf, dLevelsBuf, compressedBuf]);\n return {header, headerSize: headerBuf.length, page};\n}\n\n/**\n * Encode an array of values into a parquet column chunk\n */\nasync function encodeColumnChunk(\n column: ParquetField,\n buffer: ParquetBuffer,\n offset: number,\n opts: ParquetEncoderOptions\n): Promise<{\n body: Buffer;\n metadata: ColumnMetaData;\n metadataOffset: number;\n}> {\n const data = buffer.columnData[column.path.join()];\n const baseOffset = (opts.baseOffset || 0) + offset;\n /* encode data page(s) */\n // const pages: Buffer[] = [];\n let pageBuf: Buffer;\n // tslint:disable-next-line:variable-name\n let total_uncompressed_size = 0;\n // tslint:disable-next-line:variable-name\n let total_compressed_size = 0;\n {\n const result = opts.useDataPageV2\n ? await encodeDataPageV2(column, data, buffer.rowCount)\n : await encodeDataPage(column, data);\n // pages.push(result.page);\n pageBuf = result.page;\n total_uncompressed_size += result.header.uncompressed_page_size + result.headerSize;\n total_compressed_size += result.header.compressed_page_size + result.headerSize;\n }\n\n // const pagesBuf = Buffer.concat(pages);\n // const compression = column.compression === 'UNCOMPRESSED' ? (opts.compression || 'UNCOMPRESSED') : column.compression;\n\n /* prepare metadata header */\n const metadata = new ColumnMetaData({\n path_in_schema: column.path,\n num_values: data.count,\n data_page_offset: baseOffset,\n encodings: [],\n total_uncompressed_size, // : pagesBuf.length,\n total_compressed_size,\n type: Type[column.primitiveType!],\n codec: CompressionCodec[column.compression!]\n });\n\n /* list encodings */\n metadata.encodings.push(Encoding[PARQUET_RDLVL_ENCODING]);\n metadata.encodings.push(Encoding[column.encoding!]);\n\n /* concat metadata header and data pages */\n const metadataOffset = baseOffset + pageBuf.length;\n const body = Buffer.concat([pageBuf, serializeThrift(metadata)]);\n return {body, metadata, metadataOffset};\n}\n\n/**\n * Encode a list of column values into a parquet row group\n */\nasync function encodeRowGroup(\n schema: ParquetSchema,\n data: ParquetBuffer,\n opts: ParquetEncoderOptions\n): Promise<{\n body: Buffer;\n metadata: RowGroup;\n}> {\n const metadata = new RowGroup({\n num_rows: data.rowCount,\n columns: [],\n total_byte_size: 0\n });\n\n let body = Buffer.alloc(0);\n for (const field of schema.fieldList) {\n if (field.isNested) {\n continue; // eslint-disable-line no-continue\n }\n\n const cchunkData = await encodeColumnChunk(field, data, body.length, opts);\n\n const cchunk = new ColumnChunk({\n file_offset: cchunkData.metadataOffset,\n meta_data: cchunkData.metadata\n });\n\n metadata.columns.push(cchunk);\n metadata.total_byte_size = new Int64(Number(metadata.total_byte_size) + cchunkData.body.length);\n\n body = Buffer.concat([body, cchunkData.body]);\n }\n\n return {body, metadata};\n}\n\n/**\n * Encode a parquet file metadata footer\n */\nfunction encodeFooter(\n schema: ParquetSchema,\n rowCount: number,\n rowGroups: RowGroup[],\n userMetadata: Record<string, string>\n): Buffer {\n const metadata = new FileMetaData({\n version: PARQUET_VERSION,\n created_by: 'parquets',\n num_rows: rowCount,\n row_groups: rowGroups,\n schema: [],\n key_value_metadata: []\n });\n\n for (const key in userMetadata) {\n const kv = new KeyValue({\n key,\n value: userMetadata[key]\n });\n metadata.key_value_metadata?.push?.(kv);\n }\n\n {\n const schemaRoot = new SchemaElement({\n name: 'root',\n num_children: Object.keys(schema.fields).length\n });\n metadata.schema.push(schemaRoot);\n }\n\n for (const field of schema.fieldList) {\n const relt = FieldRepetitionType[field.repetitionType];\n const schemaElem = new SchemaElement({\n name: field.name,\n repetition_type: relt as any\n });\n\n if (field.isNested) {\n schemaElem.num_children = field.fieldCount;\n } else {\n schemaElem.type = Type[field.primitiveType!] as Type;\n }\n\n if (field.originalType) {\n schemaElem.converted_type = ConvertedType[field.originalType] as ConvertedType;\n }\n\n schemaElem.type_length = field.typeLength;\n\n metadata.schema.push(schemaElem);\n }\n\n const metadataEncoded = serializeThrift(metadata);\n const footerEncoded = Buffer.alloc(metadataEncoded.length + 8);\n metadataEncoded.copy(footerEncoded);\n footerEncoded.writeUInt32LE(metadataEncoded.length, metadataEncoded.length);\n footerEncoded.write(PARQUET_MAGIC, metadataEncoded.length + 4);\n return footerEncoded;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parquet-encoder.js","names":["PARQUET_CODECS","Compression","Shred","ColumnChunk","ColumnMetaData","CompressionCodec","ConvertedType","DataPageHeader","DataPageHeaderV2","Encoding","FieldRepetitionType","FileMetaData","KeyValue","PageHeader","PageType","RowGroup","SchemaElement","Type","osopen","oswrite","osclose","getBitWidth","serializeThrift","Int64","PARQUET_MAGIC","PARQUET_VERSION","PARQUET_DEFAULT_PAGE_SIZE","PARQUET_DEFAULT_ROW_GROUP_SIZE","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING","ParquetEncoder","openFile","schema","path","opts","outputStream","openStream","arguments","length","undefined","envelopeWriter","ParquetEnvelopeWriter","constructor","_defineProperty","rowBuffer","rowGroupSize","closed","userMetadata","writeHeader","err","close","appendRow","row","Error","shredRecord","rowCount","callback","writeFooter","setMetadata","key","value","String","setRowGroupSize","cnt","setPageSize","writeFn","bind","closeFn","fileOffset","write","offset","rowGroups","pageSize","useDataPageV2","Boolean","writeSection","buf","Buffer","from","writeRowGroup","records","rgroup","encodeRowGroup","baseOffset","push","metadata","body","encodeFooter","encodeValues","type","encoding","values","concat","encodeDataPage","column","data","rLevelsBuf","alloc","rLevelMax","rlevels","bitWidth","dLevelsBuf","dLevelMax","dlevels","valuesBuf","primitiveType","typeLength","dataBuf","compressedBuf","deflate","compression","header","DATA_PAGE","data_page_header","num_values","count","definition_level_encoding","repetition_level_encoding","uncompressed_page_size","compressed_page_size","headerBuf","page","headerSize","encodeDataPageV2","disableEnvelope","DATA_PAGE_V2","data_page_header_v2","num_nulls","num_rows","definition_levels_byte_length","repetition_levels_byte_length","is_compressed","encodeColumnChunk","buffer","columnData","join","pageBuf","total_uncompressed_size","total_compressed_size","result","path_in_schema","data_page_offset","encodings","codec","metadataOffset","columns","total_byte_size","field","fieldList","isNested","cchunkData","cchunk","file_offset","meta_data","Number","version","created_by","row_groups","key_value_metadata","_metadata$key_value_m","_metadata$key_value_m2","_metadata$key_value_m3","kv","call","schemaRoot","name","num_children","Object","keys","fields","relt","repetitionType","schemaElem","repetition_type","fieldCount","originalType","converted_type","type_length","metadataEncoded","footerEncoded","copy","writeUInt32LE"],"sources":["../../../../src/parquetjs/encoder/parquet-encoder.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport {stream} from '@loaders.gl/loader-utils';\nimport {ParquetCodecOptions, PARQUET_CODECS} from '../codecs';\nimport * as Compression from '../compression';\nimport {\n ParquetBuffer,\n ParquetCodec,\n ParquetData,\n ParquetField,\n PrimitiveType\n} from '../schema/declare';\nimport {ParquetSchema} from '../schema/schema';\nimport * as Shred from '../schema/shred';\nimport {\n ColumnChunk,\n ColumnMetaData,\n CompressionCodec,\n ConvertedType,\n DataPageHeader,\n DataPageHeaderV2,\n Encoding,\n FieldRepetitionType,\n FileMetaData,\n KeyValue,\n PageHeader,\n PageType,\n RowGroup,\n SchemaElement,\n Type\n} from '../parquet-thrift';\nimport {osopen, oswrite, osclose} from '../utils/file-utils';\nimport {getBitWidth, serializeThrift} from '../utils/read-utils';\nimport Int64 from 'node-int64';\n\n/**\n * Parquet File Magic String\n */\nconst PARQUET_MAGIC = 'PAR1';\n\n/**\n * Parquet File Format Version\n */\nconst PARQUET_VERSION = 1;\n\n/**\n * Default Page and Row Group sizes\n */\nconst PARQUET_DEFAULT_PAGE_SIZE = 8192;\nconst PARQUET_DEFAULT_ROW_GROUP_SIZE = 4096;\n\n/**\n * Repetition and Definition Level Encoding\n */\nconst PARQUET_RDLVL_TYPE = 'INT32';\nconst PARQUET_RDLVL_ENCODING = 'RLE';\n\nexport interface ParquetEncoderOptions {\n baseOffset?: number;\n rowGroupSize?: number;\n pageSize?: number;\n useDataPageV2?: boolean;\n\n // Write Stream Options\n flags?: string;\n encoding?: string;\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\n}\n\n/**\n * Write a parquet file to an output stream. The ParquetEncoder will perform\n * buffering/batching for performance, so close() must be called after all rows\n * are written.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class ParquetEncoder<T> {\n /**\n * Convenience method to create a new buffered parquet writer that writes to\n * the specified file\n */\n static async openFile<T>(\n schema: ParquetSchema,\n path: string,\n opts?: ParquetEncoderOptions\n ): Promise<ParquetEncoder<T>> {\n const outputStream = await osopen(path, opts);\n return ParquetEncoder.openStream(schema, outputStream, opts);\n }\n\n /**\n * Convenience method to create a new buffered parquet writer that writes to\n * the specified stream\n */\n static async openStream<T>(\n schema: ParquetSchema,\n outputStream: stream.Writable,\n opts: ParquetEncoderOptions = {}\n ): Promise<ParquetEncoder<T>> {\n const envelopeWriter = await ParquetEnvelopeWriter.openStream(schema, outputStream, opts);\n return new ParquetEncoder(schema, envelopeWriter, opts);\n }\n\n public schema: ParquetSchema;\n public envelopeWriter: ParquetEnvelopeWriter;\n public rowBuffer: ParquetBuffer;\n public rowGroupSize: number;\n public closed: boolean;\n public userMetadata: Record<string, string>;\n\n /**\n * Create a new buffered parquet writer for a given envelope writer\n */\n constructor(\n schema: ParquetSchema,\n envelopeWriter: ParquetEnvelopeWriter,\n opts: ParquetEncoderOptions\n ) {\n this.schema = schema;\n this.envelopeWriter = envelopeWriter;\n // @ts-ignore Row buffer typings...\n this.rowBuffer = {};\n this.rowGroupSize = opts.rowGroupSize || PARQUET_DEFAULT_ROW_GROUP_SIZE;\n this.closed = false;\n this.userMetadata = {};\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.writeHeader();\n }\n\n async writeHeader(): Promise<void> {\n // TODO - better not mess with promises in the constructor\n try {\n await this.envelopeWriter.writeHeader();\n } catch (err) {\n await this.envelopeWriter.close();\n throw err;\n }\n }\n\n /**\n * Append a single row to the parquet file. Rows are buffered in memory until\n * rowGroupSize rows are in the buffer or close() is called\n */\n async appendRow<T>(row: T): Promise<void> {\n if (this.closed) {\n throw new Error('writer was closed');\n }\n Shred.shredRecord(this.schema, row, this.rowBuffer);\n if (this.rowBuffer.rowCount >= this.rowGroupSize) {\n // @ts-ignore\n this.rowBuffer = {};\n }\n }\n\n /**\n * Finish writing the parquet file and commit the footer to disk. This method\n * MUST be called after you are finished adding rows. You must not call this\n * method twice on the same object or add any rows after the close() method has\n * been called\n */\n async close(callback?: () => void): Promise<void> {\n if (this.closed) {\n throw new Error('writer was closed');\n }\n\n this.closed = true;\n\n if (this.rowBuffer.rowCount > 0 || this.rowBuffer.rowCount >= this.rowGroupSize) {\n // @ts-ignore\n this.rowBuffer = {};\n }\n\n await this.envelopeWriter.writeFooter(this.userMetadata);\n await this.envelopeWriter.close();\n // this.envelopeWriter = null;\n\n if (callback) {\n callback();\n }\n }\n\n /**\n * Add key<>value metadata to the file\n */\n setMetadata(key: string, value: string): void {\n // TODO: value to be any, obj -> JSON\n this.userMetadata[String(key)] = String(value);\n }\n\n /**\n * Set the parquet row group size. This values controls the maximum number\n * of rows that are buffered in memory at any given time as well as the number\n * of rows that are co-located on disk. A higher value is generally better for\n * read-time I/O performance at the tradeoff of write-time memory usage.\n */\n setRowGroupSize(cnt: number): void {\n this.rowGroupSize = cnt;\n }\n\n /**\n * Set the parquet data page size. The data page size controls the maximum\n * number of column values that are written to disk as a consecutive array\n */\n setPageSize(cnt: number): void {\n this.envelopeWriter.setPageSize(cnt);\n }\n}\n\n/**\n * Create a parquet file from a schema and a number of row groups. This class\n * performs direct, unbuffered writes to the underlying output stream and is\n * intendend for advanced and internal users; the writeXXX methods must be\n * called in the correct order to produce a valid file.\n */\nexport class ParquetEnvelopeWriter {\n /**\n * Create a new parquet envelope writer that writes to the specified stream\n */\n static async openStream(\n schema: ParquetSchema,\n outputStream: stream.Writable,\n opts: ParquetEncoderOptions\n ): Promise<ParquetEnvelopeWriter> {\n const writeFn = oswrite.bind(undefined, outputStream);\n const closeFn = osclose.bind(undefined, outputStream);\n return new ParquetEnvelopeWriter(schema, writeFn, closeFn, 0, opts);\n }\n\n public schema: ParquetSchema;\n public write: (buf: Buffer) => Promise<void>;\n public close: () => Promise<void>;\n public offset: number;\n public rowCount: number;\n public rowGroups: RowGroup[];\n public pageSize: number;\n public useDataPageV2: boolean;\n\n constructor(\n schema: ParquetSchema,\n writeFn: (buf: Buffer) => Promise<void>,\n closeFn: () => Promise<void>,\n fileOffset: number,\n opts: ParquetEncoderOptions\n ) {\n this.schema = schema;\n this.write = writeFn;\n this.close = closeFn;\n this.offset = fileOffset;\n this.rowCount = 0;\n this.rowGroups = [];\n this.pageSize = opts.pageSize || PARQUET_DEFAULT_PAGE_SIZE;\n this.useDataPageV2 = 'useDataPageV2' in opts ? Boolean(opts.useDataPageV2) : false;\n }\n\n writeSection(buf: Buffer): Promise<void> {\n this.offset += buf.length;\n return this.write(buf);\n }\n\n /**\n * Encode the parquet file header\n */\n writeHeader(): Promise<void> {\n return this.writeSection(Buffer.from(PARQUET_MAGIC));\n }\n\n /**\n * Encode a parquet row group. The records object should be created using the\n * shredRecord method\n */\n async writeRowGroup(records: ParquetBuffer): Promise<void> {\n const rgroup = await encodeRowGroup(this.schema, records, {\n baseOffset: this.offset,\n pageSize: this.pageSize,\n useDataPageV2: this.useDataPageV2\n });\n\n this.rowCount += records.rowCount;\n this.rowGroups.push(rgroup.metadata);\n return await this.writeSection(rgroup.body);\n }\n\n /**\n * Write the parquet file footer\n */\n writeFooter(userMetadata: Record<string, string>): Promise<void> {\n if (!userMetadata) {\n // tslint:disable-next-line:no-parameter-reassignment\n userMetadata = {};\n }\n\n return this.writeSection(\n encodeFooter(this.schema, this.rowCount, this.rowGroups, userMetadata)\n );\n }\n\n /**\n * Set the parquet data page size. The data page size controls the maximum\n * number of column values that are written to disk as a consecutive array\n */\n setPageSize(cnt: number): void {\n this.pageSize = cnt;\n }\n}\n\n/**\n * Create a parquet transform stream\nexport class ParquetTransformer<T> extends stream.Transform {\n public writer: ParquetEncoder<T>;\n\n constructor(schema: ParquetSchema, opts: ParquetEncoderOptions = {}) {\n super({objectMode: true});\n\n const writeProxy = (function (t: ParquetTransformer<any>) {\n return async function (b: any): Promise<void> {\n t.push(b);\n };\n })(this);\n\n this.writer = new ParquetEncoder(\n schema,\n new ParquetEnvelopeWriter(schema, writeProxy, async () => {}, 0, opts),\n opts\n );\n }\n\n // tslint:disable-next-line:function-name\n _transform(row: any, encoding: string, callback: (val?: any) => void): Promise<void> {\n if (row) {\n return this.writer.appendRow(row).then(callback);\n }\n callback();\n return Promise.resolve();\n }\n\n // tslint:disable-next-line:function-name\n async _flush(callback: (val?: any) => void) {\n await this.writer.close(callback);\n }\n}\n */\n\n/**\n * Encode a consecutive array of data using one of the parquet encodings\n */\nfunction encodeValues(\n type: PrimitiveType,\n encoding: ParquetCodec,\n values: any[],\n opts: ParquetCodecOptions\n) {\n if (!(encoding in PARQUET_CODECS)) {\n throw new Error(`invalid encoding: ${encoding}`);\n }\n return PARQUET_CODECS[encoding].encodeValues(type, values, opts);\n}\n\n/**\n * Encode a parquet data page\n */\nasync function encodeDataPage(\n column: ParquetField,\n data: ParquetData\n): Promise<{\n header: PageHeader;\n headerSize: number;\n page: Buffer;\n}> {\n /* encode repetition and definition levels */\n let rLevelsBuf = Buffer.alloc(0);\n if (column.rLevelMax > 0) {\n rLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.rlevels, {\n bitWidth: getBitWidth(column.rLevelMax)\n // disableEnvelope: false\n });\n }\n\n let dLevelsBuf = Buffer.alloc(0);\n if (column.dLevelMax > 0) {\n dLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.dlevels, {\n bitWidth: getBitWidth(column.dLevelMax)\n // disableEnvelope: false\n });\n }\n\n /* encode values */\n const valuesBuf = encodeValues(column.primitiveType!, column.encoding!, data.values, {\n typeLength: column.typeLength,\n bitWidth: column.typeLength\n });\n\n const dataBuf = Buffer.concat([rLevelsBuf, dLevelsBuf, valuesBuf]);\n\n // compression = column.compression === 'UNCOMPRESSED' ? (compression || 'UNCOMPRESSED') : column.compression;\n const compressedBuf = await Compression.deflate(column.compression!, dataBuf);\n\n /* build page header */\n const header = new PageHeader({\n type: PageType.DATA_PAGE,\n data_page_header: new DataPageHeader({\n num_values: data.count,\n encoding: Encoding[column.encoding!] as any,\n definition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING], // [PARQUET_RDLVL_ENCODING],\n repetition_level_encoding: Encoding[PARQUET_RDLVL_ENCODING] // [PARQUET_RDLVL_ENCODING]\n }),\n uncompressed_page_size: dataBuf.length,\n compressed_page_size: compressedBuf.length\n });\n\n /* concat page header, repetition and definition levels and values */\n const headerBuf = serializeThrift(header);\n const page = Buffer.concat([headerBuf, compressedBuf]);\n\n return {header, headerSize: headerBuf.length, page};\n}\n\n/**\n * Encode a parquet data page (v2)\n */\nasync function encodeDataPageV2(\n column: ParquetField,\n data: ParquetData,\n rowCount: number\n): Promise<{\n header: PageHeader;\n headerSize: number;\n page: Buffer;\n}> {\n /* encode values */\n const valuesBuf = encodeValues(column.primitiveType!, column.encoding!, data.values, {\n typeLength: column.typeLength,\n bitWidth: column.typeLength\n });\n\n // compression = column.compression === 'UNCOMPRESSED' ? (compression || 'UNCOMPRESSED') : column.compression;\n const compressedBuf = await Compression.deflate(column.compression!, valuesBuf);\n\n /* encode repetition and definition levels */\n let rLevelsBuf = Buffer.alloc(0);\n if (column.rLevelMax > 0) {\n rLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.rlevels, {\n bitWidth: getBitWidth(column.rLevelMax),\n disableEnvelope: true\n });\n }\n\n let dLevelsBuf = Buffer.alloc(0);\n if (column.dLevelMax > 0) {\n dLevelsBuf = encodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, data.dlevels, {\n bitWidth: getBitWidth(column.dLevelMax),\n disableEnvelope: true\n });\n }\n\n /* build page header */\n const header = new PageHeader({\n type: PageType.DATA_PAGE_V2,\n data_page_header_v2: new DataPageHeaderV2({\n num_values: data.count,\n num_nulls: data.count - data.values.length,\n num_rows: rowCount,\n encoding: Encoding[column.encoding!] as any,\n definition_levels_byte_length: dLevelsBuf.length,\n repetition_levels_byte_length: rLevelsBuf.length,\n is_compressed: column.compression !== 'UNCOMPRESSED'\n }),\n uncompressed_page_size: rLevelsBuf.length + dLevelsBuf.length + valuesBuf.length,\n compressed_page_size: rLevelsBuf.length + dLevelsBuf.length + compressedBuf.length\n });\n\n /* concat page header, repetition and definition levels and values */\n const headerBuf = serializeThrift(header);\n const page = Buffer.concat([headerBuf, rLevelsBuf, dLevelsBuf, compressedBuf]);\n return {header, headerSize: headerBuf.length, page};\n}\n\n/**\n * Encode an array of values into a parquet column chunk\n */\nasync function encodeColumnChunk(\n column: ParquetField,\n buffer: ParquetBuffer,\n offset: number,\n opts: ParquetEncoderOptions\n): Promise<{\n body: Buffer;\n metadata: ColumnMetaData;\n metadataOffset: number;\n}> {\n const data = buffer.columnData[column.path.join()];\n const baseOffset = (opts.baseOffset || 0) + offset;\n /* encode data page(s) */\n // const pages: Buffer[] = [];\n let pageBuf: Buffer;\n // tslint:disable-next-line:variable-name\n let total_uncompressed_size = 0;\n // tslint:disable-next-line:variable-name\n let total_compressed_size = 0;\n {\n const result = opts.useDataPageV2\n ? await encodeDataPageV2(column, data, buffer.rowCount)\n : await encodeDataPage(column, data);\n // pages.push(result.page);\n pageBuf = result.page;\n total_uncompressed_size += result.header.uncompressed_page_size + result.headerSize;\n total_compressed_size += result.header.compressed_page_size + result.headerSize;\n }\n\n // const pagesBuf = Buffer.concat(pages);\n // const compression = column.compression === 'UNCOMPRESSED' ? (opts.compression || 'UNCOMPRESSED') : column.compression;\n\n /* prepare metadata header */\n const metadata = new ColumnMetaData({\n path_in_schema: column.path,\n num_values: data.count,\n data_page_offset: baseOffset,\n encodings: [],\n total_uncompressed_size, // : pagesBuf.length,\n total_compressed_size,\n type: Type[column.primitiveType!],\n codec: CompressionCodec[column.compression!]\n });\n\n /* list encodings */\n metadata.encodings.push(Encoding[PARQUET_RDLVL_ENCODING]);\n metadata.encodings.push(Encoding[column.encoding!]);\n\n /* concat metadata header and data pages */\n const metadataOffset = baseOffset + pageBuf.length;\n const body = Buffer.concat([pageBuf, serializeThrift(metadata)]);\n return {body, metadata, metadataOffset};\n}\n\n/**\n * Encode a list of column values into a parquet row group\n */\nasync function encodeRowGroup(\n schema: ParquetSchema,\n data: ParquetBuffer,\n opts: ParquetEncoderOptions\n): Promise<{\n body: Buffer;\n metadata: RowGroup;\n}> {\n const metadata = new RowGroup({\n num_rows: data.rowCount,\n columns: [],\n total_byte_size: 0\n });\n\n let body = Buffer.alloc(0);\n for (const field of schema.fieldList) {\n if (field.isNested) {\n continue; // eslint-disable-line no-continue\n }\n\n const cchunkData = await encodeColumnChunk(field, data, body.length, opts);\n\n const cchunk = new ColumnChunk({\n file_offset: cchunkData.metadataOffset,\n meta_data: cchunkData.metadata\n });\n\n metadata.columns.push(cchunk);\n metadata.total_byte_size = new Int64(Number(metadata.total_byte_size) + cchunkData.body.length);\n\n body = Buffer.concat([body, cchunkData.body]);\n }\n\n return {body, metadata};\n}\n\n/**\n * Encode a parquet file metadata footer\n */\nfunction encodeFooter(\n schema: ParquetSchema,\n rowCount: number,\n rowGroups: RowGroup[],\n userMetadata: Record<string, string>\n): Buffer {\n const metadata = new FileMetaData({\n version: PARQUET_VERSION,\n created_by: 'parquets',\n num_rows: rowCount,\n row_groups: rowGroups,\n schema: [],\n key_value_metadata: []\n });\n\n for (const key in userMetadata) {\n const kv = new KeyValue({\n key,\n value: userMetadata[key]\n });\n metadata.key_value_metadata?.push?.(kv);\n }\n\n {\n const schemaRoot = new SchemaElement({\n name: 'root',\n num_children: Object.keys(schema.fields).length\n });\n metadata.schema.push(schemaRoot);\n }\n\n for (const field of schema.fieldList) {\n const relt = FieldRepetitionType[field.repetitionType];\n const schemaElem = new SchemaElement({\n name: field.name,\n repetition_type: relt as any\n });\n\n if (field.isNested) {\n schemaElem.num_children = field.fieldCount;\n } else {\n schemaElem.type = Type[field.primitiveType!] as Type;\n }\n\n if (field.originalType) {\n schemaElem.converted_type = ConvertedType[field.originalType] as ConvertedType;\n }\n\n schemaElem.type_length = field.typeLength;\n\n metadata.schema.push(schemaElem);\n }\n\n const metadataEncoded = serializeThrift(metadata);\n const footerEncoded = Buffer.alloc(metadataEncoded.length + 8);\n metadataEncoded.copy(footerEncoded);\n footerEncoded.writeUInt32LE(metadataEncoded.length, metadataEncoded.length);\n footerEncoded.write(PARQUET_MAGIC, metadataEncoded.length + 4);\n return footerEncoded;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export let BoundaryOrder;
|
|
3
|
-
(function (BoundaryOrder) {
|
|
1
|
+
export let BoundaryOrder = function (BoundaryOrder) {
|
|
4
2
|
BoundaryOrder[BoundaryOrder["UNORDERED"] = 0] = "UNORDERED";
|
|
5
3
|
BoundaryOrder[BoundaryOrder["ASCENDING"] = 1] = "ASCENDING";
|
|
6
4
|
BoundaryOrder[BoundaryOrder["DESCENDING"] = 2] = "DESCENDING";
|
|
7
|
-
|
|
5
|
+
return BoundaryOrder;
|
|
6
|
+
}({});
|
|
8
7
|
//# sourceMappingURL=BoundaryOrder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundaryOrder.js","names":["BoundaryOrder"],"sources":["../../../../src/parquetjs/parquet-thrift/BoundaryOrder.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport enum BoundaryOrder {\n UNORDERED = 0,\n ASCENDING = 1,\n DESCENDING = 2\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BoundaryOrder.js","names":["BoundaryOrder"],"sources":["../../../../src/parquetjs/parquet-thrift/BoundaryOrder.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport enum BoundaryOrder {\n UNORDERED = 0,\n ASCENDING = 1,\n DESCENDING = 2\n}\n"],"mappings":"AAMA,WAAYA,aAAa,aAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BsonType.js","names":["thrift","BsonType","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"sources":["../../../../src/parquetjs/parquet-thrift/BsonType.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface IBsonTypeArgs {}\nexport class BsonType {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('BsonType');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): BsonType {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new BsonType();\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BsonType.js","names":["thrift","BsonType","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"sources":["../../../../src/parquetjs/parquet-thrift/BsonType.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface IBsonTypeArgs {}\nexport class BsonType {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('BsonType');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): BsonType {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new BsonType();\n }\n}\n"],"mappings":"AAMA,OAAO,KAAKA,MAAM,MAAM,QAAQ;AAEhC,OAAO,MAAMC,QAAQ,CAAC;EACpBC,WAAWA,CAAA,EAAG,CAAC;EACRC,KAAKA,CAACC,MAAwB,EAAQ;IAC3CA,MAAM,CAACC,gBAAgB,CAAC,UAAU,CAAC;IACnCD,MAAM,CAACE,cAAc,CAAC,CAAC;IACvBF,MAAM,CAACG,cAAc,CAAC,CAAC;IACvB;EACF;EACA,OAAcC,IAAIA,CAACC,KAAuB,EAAY;IACpDA,KAAK,CAACC,eAAe,CAAC,CAAC;IACvB,OAAO,IAAI,EAAE;MACX,MAAMC,GAAkB,GAAGF,KAAK,CAACG,cAAc,CAAC,CAAC;MACjD,MAAMC,SAA6B,GAAGF,GAAG,CAACG,KAAK;MAC/C,MAAMC,OAAe,GAAGJ,GAAG,CAACK,GAAG;MAC/B,IAAIH,SAAS,KAAKb,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACC,IAAI,EAAE;QACzC;MACF;MACA,QAAQJ,OAAO;QACb;UAAS;YACPN,KAAK,CAACW,IAAI,CAACP,SAAS,CAAC;UACvB;MACF;MACAJ,KAAK,CAACY,YAAY,CAAC,CAAC;IACtB;IACAZ,KAAK,CAACa,aAAa,CAAC,CAAC;IACrB,OAAO,IAAIrB,QAAQ,CAAC,CAAC;EACvB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnChunk.js","names":["Int64","thrift","ColumnMetaData","ColumnChunk","constructor","args","file_path","file_offset","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","meta_data","offset_index_offset","offset_index_length","column_index_offset","column_index_length","write","output","writeStructBegin","writeFieldBegin","Type","STRING","writeString","writeFieldEnd","I64","writeI64","STRUCT","I32","writeI32","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_1","readString","skip","value_2","readI64","value_3","value_4","value_5","readI32","value_6","value_7","readFieldEnd","readStructEnd","undefined"],"sources":["../../../../src/parquetjs/parquet-thrift/ColumnChunk.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport Int64 from 'node-int64';\nimport * as thrift from 'thrift';\nimport * as ColumnMetaData from './ColumnMetaData';\nexport interface IColumnChunkArgs {\n file_path?: string;\n file_offset: number | Int64;\n meta_data?: ColumnMetaData.ColumnMetaData;\n offset_index_offset?: number | Int64;\n offset_index_length?: number;\n column_index_offset?: number | Int64;\n column_index_length?: number;\n}\nexport class ColumnChunk {\n public file_path?: string;\n public file_offset: Int64;\n public meta_data?: ColumnMetaData.ColumnMetaData;\n public offset_index_offset?: Int64;\n public offset_index_length?: number;\n public column_index_offset?: Int64;\n public column_index_length?: number;\n constructor(args: IColumnChunkArgs) {\n if (args != null && args.file_path != null) {\n this.file_path = args.file_path;\n }\n if (args != null && args.file_offset != null) {\n if (typeof args.file_offset === 'number') {\n this.file_offset = new Int64(args.file_offset);\n } else {\n this.file_offset = args.file_offset;\n }\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[file_offset] is unset!'\n );\n }\n if (args != null && args.meta_data != null) {\n this.meta_data = args.meta_data;\n }\n if (args != null && args.offset_index_offset != null) {\n if (typeof args.offset_index_offset === 'number') {\n this.offset_index_offset = new Int64(args.offset_index_offset);\n } else {\n this.offset_index_offset = args.offset_index_offset;\n }\n }\n if (args != null && args.offset_index_length != null) {\n this.offset_index_length = args.offset_index_length;\n }\n if (args != null && args.column_index_offset != null) {\n if (typeof args.column_index_offset === 'number') {\n this.column_index_offset = new Int64(args.column_index_offset);\n } else {\n this.column_index_offset = args.column_index_offset;\n }\n }\n if (args != null && args.column_index_length != null) {\n this.column_index_length = args.column_index_length;\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('ColumnChunk');\n if (this.file_path != null) {\n output.writeFieldBegin('file_path', thrift.Thrift.Type.STRING, 1);\n output.writeString(this.file_path);\n output.writeFieldEnd();\n }\n if (this.file_offset != null) {\n output.writeFieldBegin('file_offset', thrift.Thrift.Type.I64, 2);\n output.writeI64(this.file_offset);\n output.writeFieldEnd();\n }\n if (this.meta_data != null) {\n output.writeFieldBegin('meta_data', thrift.Thrift.Type.STRUCT, 3);\n this.meta_data.write(output);\n output.writeFieldEnd();\n }\n if (this.offset_index_offset != null) {\n output.writeFieldBegin('offset_index_offset', thrift.Thrift.Type.I64, 4);\n output.writeI64(this.offset_index_offset);\n output.writeFieldEnd();\n }\n if (this.offset_index_length != null) {\n output.writeFieldBegin('offset_index_length', thrift.Thrift.Type.I32, 5);\n output.writeI32(this.offset_index_length);\n output.writeFieldEnd();\n }\n if (this.column_index_offset != null) {\n output.writeFieldBegin('column_index_offset', thrift.Thrift.Type.I64, 6);\n output.writeI64(this.column_index_offset);\n output.writeFieldEnd();\n }\n if (this.column_index_length != null) {\n output.writeFieldBegin('column_index_length', thrift.Thrift.Type.I32, 7);\n output.writeI32(this.column_index_length);\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): ColumnChunk {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.STRING) {\n const value_1: string = input.readString();\n _args.file_path = value_1;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_2: Int64 = input.readI64();\n _args.file_offset = value_2;\n } else {\n input.skip(fieldType);\n }\n break;\n case 3:\n if (fieldType === thrift.Thrift.Type.STRUCT) {\n const value_3: ColumnMetaData.ColumnMetaData =\n ColumnMetaData.ColumnMetaData.read(input);\n _args.meta_data = value_3;\n } else {\n input.skip(fieldType);\n }\n break;\n case 4:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_4: Int64 = input.readI64();\n _args.offset_index_offset = value_4;\n } else {\n input.skip(fieldType);\n }\n break;\n case 5:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_5: number = input.readI32();\n _args.offset_index_length = value_5;\n } else {\n input.skip(fieldType);\n }\n break;\n case 6:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_6: Int64 = input.readI64();\n _args.column_index_offset = value_6;\n } else {\n input.skip(fieldType);\n }\n break;\n case 7:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_7: number = input.readI32();\n _args.column_index_length = value_7;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (_args.file_offset !== undefined) {\n return new ColumnChunk(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read ColumnChunk from input'\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnChunk.js","names":["Int64","thrift","ColumnMetaData","ColumnChunk","constructor","args","_defineProperty","file_path","file_offset","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","meta_data","offset_index_offset","offset_index_length","column_index_offset","column_index_length","write","output","writeStructBegin","writeFieldBegin","Type","STRING","writeString","writeFieldEnd","I64","writeI64","STRUCT","I32","writeI32","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_1","readString","skip","value_2","readI64","value_3","value_4","value_5","readI32","value_6","value_7","readFieldEnd","readStructEnd","undefined"],"sources":["../../../../src/parquetjs/parquet-thrift/ColumnChunk.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport Int64 from 'node-int64';\nimport * as thrift from 'thrift';\nimport * as ColumnMetaData from './ColumnMetaData';\nexport interface IColumnChunkArgs {\n file_path?: string;\n file_offset: number | Int64;\n meta_data?: ColumnMetaData.ColumnMetaData;\n offset_index_offset?: number | Int64;\n offset_index_length?: number;\n column_index_offset?: number | Int64;\n column_index_length?: number;\n}\nexport class ColumnChunk {\n public file_path?: string;\n public file_offset: Int64;\n public meta_data?: ColumnMetaData.ColumnMetaData;\n public offset_index_offset?: Int64;\n public offset_index_length?: number;\n public column_index_offset?: Int64;\n public column_index_length?: number;\n constructor(args: IColumnChunkArgs) {\n if (args != null && args.file_path != null) {\n this.file_path = args.file_path;\n }\n if (args != null && args.file_offset != null) {\n if (typeof args.file_offset === 'number') {\n this.file_offset = new Int64(args.file_offset);\n } else {\n this.file_offset = args.file_offset;\n }\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[file_offset] is unset!'\n );\n }\n if (args != null && args.meta_data != null) {\n this.meta_data = args.meta_data;\n }\n if (args != null && args.offset_index_offset != null) {\n if (typeof args.offset_index_offset === 'number') {\n this.offset_index_offset = new Int64(args.offset_index_offset);\n } else {\n this.offset_index_offset = args.offset_index_offset;\n }\n }\n if (args != null && args.offset_index_length != null) {\n this.offset_index_length = args.offset_index_length;\n }\n if (args != null && args.column_index_offset != null) {\n if (typeof args.column_index_offset === 'number') {\n this.column_index_offset = new Int64(args.column_index_offset);\n } else {\n this.column_index_offset = args.column_index_offset;\n }\n }\n if (args != null && args.column_index_length != null) {\n this.column_index_length = args.column_index_length;\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('ColumnChunk');\n if (this.file_path != null) {\n output.writeFieldBegin('file_path', thrift.Thrift.Type.STRING, 1);\n output.writeString(this.file_path);\n output.writeFieldEnd();\n }\n if (this.file_offset != null) {\n output.writeFieldBegin('file_offset', thrift.Thrift.Type.I64, 2);\n output.writeI64(this.file_offset);\n output.writeFieldEnd();\n }\n if (this.meta_data != null) {\n output.writeFieldBegin('meta_data', thrift.Thrift.Type.STRUCT, 3);\n this.meta_data.write(output);\n output.writeFieldEnd();\n }\n if (this.offset_index_offset != null) {\n output.writeFieldBegin('offset_index_offset', thrift.Thrift.Type.I64, 4);\n output.writeI64(this.offset_index_offset);\n output.writeFieldEnd();\n }\n if (this.offset_index_length != null) {\n output.writeFieldBegin('offset_index_length', thrift.Thrift.Type.I32, 5);\n output.writeI32(this.offset_index_length);\n output.writeFieldEnd();\n }\n if (this.column_index_offset != null) {\n output.writeFieldBegin('column_index_offset', thrift.Thrift.Type.I64, 6);\n output.writeI64(this.column_index_offset);\n output.writeFieldEnd();\n }\n if (this.column_index_length != null) {\n output.writeFieldBegin('column_index_length', thrift.Thrift.Type.I32, 7);\n output.writeI32(this.column_index_length);\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): ColumnChunk {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.STRING) {\n const value_1: string = input.readString();\n _args.file_path = value_1;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_2: Int64 = input.readI64();\n _args.file_offset = value_2;\n } else {\n input.skip(fieldType);\n }\n break;\n case 3:\n if (fieldType === thrift.Thrift.Type.STRUCT) {\n const value_3: ColumnMetaData.ColumnMetaData =\n ColumnMetaData.ColumnMetaData.read(input);\n _args.meta_data = value_3;\n } else {\n input.skip(fieldType);\n }\n break;\n case 4:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_4: Int64 = input.readI64();\n _args.offset_index_offset = value_4;\n } else {\n input.skip(fieldType);\n }\n break;\n case 5:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_5: number = input.readI32();\n _args.offset_index_length = value_5;\n } else {\n input.skip(fieldType);\n }\n break;\n case 6:\n if (fieldType === thrift.Thrift.Type.I64) {\n const value_6: Int64 = input.readI64();\n _args.column_index_offset = value_6;\n } else {\n input.skip(fieldType);\n }\n break;\n case 7:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_7: number = input.readI32();\n _args.column_index_length = value_7;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (_args.file_offset !== undefined) {\n return new ColumnChunk(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read ColumnChunk from input'\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnIndex.js","names":["Int64","thrift","ColumnIndex","constructor","args","null_pages","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","min_values","max_values","boundary_order","null_counts","map","c","write","output","writeStructBegin","writeFieldBegin","Type","LIST","writeListBegin","BOOL","length","forEach","value_1","writeBool","writeListEnd","writeFieldEnd","STRING","value_2","writeBinary","value_3","I32","writeI32","I64","value_4","writeI64","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_5","Array","metadata_1","readListBegin","size_1","size","i_1","value_6","readBool","push","readListEnd","skip","value_7","metadata_2","size_2","i_2","value_8","readBinary","value_9","metadata_3","size_3","i_3","value_10","value_11","readI32","value_12","metadata_4","size_4","i_4","value_13","readI64","readFieldEnd","readStructEnd","undefined"],"sources":["../../../../src/parquetjs/parquet-thrift/ColumnIndex.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport Int64 from 'node-int64';\nimport * as thrift from 'thrift';\nimport * as BoundaryOrder from './BoundaryOrder';\nexport interface IColumnIndexArgs {\n null_pages: Array<boolean>;\n min_values: Array<Buffer>;\n max_values: Array<Buffer>;\n boundary_order: BoundaryOrder.BoundaryOrder;\n null_counts?: Array<number | Int64>;\n}\nexport class ColumnIndex {\n public null_pages: Array<boolean>;\n public min_values: Array<Buffer>;\n public max_values: Array<Buffer>;\n public boundary_order: BoundaryOrder.BoundaryOrder;\n public null_counts?: Array<Int64>;\n constructor(args: IColumnIndexArgs) {\n if (args != null && args.null_pages != null) {\n this.null_pages = args.null_pages;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[null_pages] is unset!'\n );\n }\n if (args != null && args.min_values != null) {\n this.min_values = args.min_values;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[min_values] is unset!'\n );\n }\n if (args != null && args.max_values != null) {\n this.max_values = args.max_values;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[max_values] is unset!'\n );\n }\n if (args != null && args.boundary_order != null) {\n this.boundary_order = args.boundary_order;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[boundary_order] is unset!'\n );\n }\n if (args != null && args.null_counts != null) {\n this.null_counts = args.null_counts.map((c) => new Int64(+c));\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('ColumnIndex');\n if (this.null_pages != null) {\n output.writeFieldBegin('null_pages', thrift.Thrift.Type.LIST, 1);\n output.writeListBegin(thrift.Thrift.Type.BOOL, this.null_pages.length);\n this.null_pages.forEach((value_1: boolean): void => {\n output.writeBool(value_1);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.min_values != null) {\n output.writeFieldBegin('min_values', thrift.Thrift.Type.LIST, 2);\n output.writeListBegin(thrift.Thrift.Type.STRING, this.min_values.length);\n this.min_values.forEach((value_2: Buffer): void => {\n output.writeBinary(value_2);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.max_values != null) {\n output.writeFieldBegin('max_values', thrift.Thrift.Type.LIST, 3);\n output.writeListBegin(thrift.Thrift.Type.STRING, this.max_values.length);\n this.max_values.forEach((value_3: Buffer): void => {\n output.writeBinary(value_3);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.boundary_order != null) {\n output.writeFieldBegin('boundary_order', thrift.Thrift.Type.I32, 4);\n output.writeI32(this.boundary_order);\n output.writeFieldEnd();\n }\n if (this.null_counts != null) {\n output.writeFieldBegin('null_counts', thrift.Thrift.Type.LIST, 5);\n output.writeListBegin(thrift.Thrift.Type.I64, this.null_counts.length);\n this.null_counts.forEach((value_4: Int64): void => {\n output.writeI64(value_4);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): ColumnIndex {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_5: Array<boolean> = new Array<boolean>();\n const metadata_1: thrift.TList = input.readListBegin();\n const size_1: number = metadata_1.size;\n for (let i_1: number = 0; i_1 < size_1; i_1++) {\n const value_6: boolean = input.readBool();\n value_5.push(value_6);\n }\n input.readListEnd();\n _args.null_pages = value_5;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_7: Array<Buffer> = new Array<Buffer>();\n const metadata_2: thrift.TList = input.readListBegin();\n const size_2: number = metadata_2.size;\n for (let i_2: number = 0; i_2 < size_2; i_2++) {\n const value_8: Buffer = input.readBinary();\n value_7.push(value_8);\n }\n input.readListEnd();\n _args.min_values = value_7;\n } else {\n input.skip(fieldType);\n }\n break;\n case 3:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_9: Array<Buffer> = new Array<Buffer>();\n const metadata_3: thrift.TList = input.readListBegin();\n const size_3: number = metadata_3.size;\n for (let i_3: number = 0; i_3 < size_3; i_3++) {\n const value_10: Buffer = input.readBinary();\n value_9.push(value_10);\n }\n input.readListEnd();\n _args.max_values = value_9;\n } else {\n input.skip(fieldType);\n }\n break;\n case 4:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_11: BoundaryOrder.BoundaryOrder = input.readI32();\n _args.boundary_order = value_11;\n } else {\n input.skip(fieldType);\n }\n break;\n case 5:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_12: Array<Int64> = new Array<Int64>();\n const metadata_4: thrift.TList = input.readListBegin();\n const size_4: number = metadata_4.size;\n for (let i_4: number = 0; i_4 < size_4; i_4++) {\n const value_13: Int64 = input.readI64();\n value_12.push(value_13);\n }\n input.readListEnd();\n _args.null_counts = value_12;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (\n _args.null_pages !== undefined &&\n _args.min_values !== undefined &&\n _args.max_values !== undefined &&\n _args.boundary_order !== undefined\n ) {\n return new ColumnIndex(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read ColumnIndex from input'\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnIndex.js","names":["Int64","thrift","ColumnIndex","constructor","args","_defineProperty","null_pages","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","min_values","max_values","boundary_order","null_counts","map","c","write","output","writeStructBegin","writeFieldBegin","Type","LIST","writeListBegin","BOOL","length","forEach","value_1","writeBool","writeListEnd","writeFieldEnd","STRING","value_2","writeBinary","value_3","I32","writeI32","I64","value_4","writeI64","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_5","Array","metadata_1","readListBegin","size_1","size","i_1","value_6","readBool","push","readListEnd","skip","value_7","metadata_2","size_2","i_2","value_8","readBinary","value_9","metadata_3","size_3","i_3","value_10","value_11","readI32","value_12","metadata_4","size_4","i_4","value_13","readI64","readFieldEnd","readStructEnd","undefined"],"sources":["../../../../src/parquetjs/parquet-thrift/ColumnIndex.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport Int64 from 'node-int64';\nimport * as thrift from 'thrift';\nimport * as BoundaryOrder from './BoundaryOrder';\nexport interface IColumnIndexArgs {\n null_pages: Array<boolean>;\n min_values: Array<Buffer>;\n max_values: Array<Buffer>;\n boundary_order: BoundaryOrder.BoundaryOrder;\n null_counts?: Array<number | Int64>;\n}\nexport class ColumnIndex {\n public null_pages: Array<boolean>;\n public min_values: Array<Buffer>;\n public max_values: Array<Buffer>;\n public boundary_order: BoundaryOrder.BoundaryOrder;\n public null_counts?: Array<Int64>;\n constructor(args: IColumnIndexArgs) {\n if (args != null && args.null_pages != null) {\n this.null_pages = args.null_pages;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[null_pages] is unset!'\n );\n }\n if (args != null && args.min_values != null) {\n this.min_values = args.min_values;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[min_values] is unset!'\n );\n }\n if (args != null && args.max_values != null) {\n this.max_values = args.max_values;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[max_values] is unset!'\n );\n }\n if (args != null && args.boundary_order != null) {\n this.boundary_order = args.boundary_order;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[boundary_order] is unset!'\n );\n }\n if (args != null && args.null_counts != null) {\n this.null_counts = args.null_counts.map((c) => new Int64(+c));\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('ColumnIndex');\n if (this.null_pages != null) {\n output.writeFieldBegin('null_pages', thrift.Thrift.Type.LIST, 1);\n output.writeListBegin(thrift.Thrift.Type.BOOL, this.null_pages.length);\n this.null_pages.forEach((value_1: boolean): void => {\n output.writeBool(value_1);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.min_values != null) {\n output.writeFieldBegin('min_values', thrift.Thrift.Type.LIST, 2);\n output.writeListBegin(thrift.Thrift.Type.STRING, this.min_values.length);\n this.min_values.forEach((value_2: Buffer): void => {\n output.writeBinary(value_2);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.max_values != null) {\n output.writeFieldBegin('max_values', thrift.Thrift.Type.LIST, 3);\n output.writeListBegin(thrift.Thrift.Type.STRING, this.max_values.length);\n this.max_values.forEach((value_3: Buffer): void => {\n output.writeBinary(value_3);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n if (this.boundary_order != null) {\n output.writeFieldBegin('boundary_order', thrift.Thrift.Type.I32, 4);\n output.writeI32(this.boundary_order);\n output.writeFieldEnd();\n }\n if (this.null_counts != null) {\n output.writeFieldBegin('null_counts', thrift.Thrift.Type.LIST, 5);\n output.writeListBegin(thrift.Thrift.Type.I64, this.null_counts.length);\n this.null_counts.forEach((value_4: Int64): void => {\n output.writeI64(value_4);\n });\n output.writeListEnd();\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): ColumnIndex {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_5: Array<boolean> = new Array<boolean>();\n const metadata_1: thrift.TList = input.readListBegin();\n const size_1: number = metadata_1.size;\n for (let i_1: number = 0; i_1 < size_1; i_1++) {\n const value_6: boolean = input.readBool();\n value_5.push(value_6);\n }\n input.readListEnd();\n _args.null_pages = value_5;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_7: Array<Buffer> = new Array<Buffer>();\n const metadata_2: thrift.TList = input.readListBegin();\n const size_2: number = metadata_2.size;\n for (let i_2: number = 0; i_2 < size_2; i_2++) {\n const value_8: Buffer = input.readBinary();\n value_7.push(value_8);\n }\n input.readListEnd();\n _args.min_values = value_7;\n } else {\n input.skip(fieldType);\n }\n break;\n case 3:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_9: Array<Buffer> = new Array<Buffer>();\n const metadata_3: thrift.TList = input.readListBegin();\n const size_3: number = metadata_3.size;\n for (let i_3: number = 0; i_3 < size_3; i_3++) {\n const value_10: Buffer = input.readBinary();\n value_9.push(value_10);\n }\n input.readListEnd();\n _args.max_values = value_9;\n } else {\n input.skip(fieldType);\n }\n break;\n case 4:\n if (fieldType === thrift.Thrift.Type.I32) {\n const value_11: BoundaryOrder.BoundaryOrder = input.readI32();\n _args.boundary_order = value_11;\n } else {\n input.skip(fieldType);\n }\n break;\n case 5:\n if (fieldType === thrift.Thrift.Type.LIST) {\n const value_12: Array<Int64> = new Array<Int64>();\n const metadata_4: thrift.TList = input.readListBegin();\n const size_4: number = metadata_4.size;\n for (let i_4: number = 0; i_4 < size_4; i_4++) {\n const value_13: Int64 = input.readI64();\n value_12.push(value_13);\n }\n input.readListEnd();\n _args.null_counts = value_12;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (\n _args.null_pages !== undefined &&\n _args.min_values !== undefined &&\n _args.max_values !== undefined &&\n _args.boundary_order !== undefined\n ) {\n return new ColumnIndex(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read ColumnIndex from input'\n );\n }\n }\n}\n"],"mappings":"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"}
|