@loaders.gl/parquet 3.3.0-alpha.5 → 3.3.0-alpha.7
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 +14 -14
- package/dist/dist.min.js.map +2 -2
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +3 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +23 -39
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/convert-schema.js +2 -11
- package/dist/es5/lib/convert-schema.js.map +1 -1
- package/dist/es5/lib/parse-parquet.js +29 -72
- package/dist/es5/lib/parse-parquet.js.map +1 -1
- package/dist/es5/lib/read-array-buffer.js +0 -10
- package/dist/es5/lib/read-array-buffer.js.map +1 -1
- package/dist/es5/lib/wasm/encode-parquet-wasm.js +0 -11
- package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/index.js +0 -1
- package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +0 -14
- 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 +0 -10
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
- package/dist/es5/lib/wasm/parse-parquet-wasm.js +1 -19
- package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/es5/parquet-loader.js +2 -1
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-loader.js +2 -1
- package/dist/es5/parquet-wasm-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-writer.js +1 -3
- package/dist/es5/parquet-wasm-writer.js.map +1 -1
- package/dist/es5/parquet-writer.js +1 -2
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/declare.js.map +1 -1
- package/dist/es5/parquetjs/codecs/dictionary.js +2 -9
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/es5/parquetjs/codecs/index.js +0 -8
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/plain.js +1 -77
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +1 -39
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +5 -30
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/encoder/writer.js +31 -149
- package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
- package/dist/es5/parquetjs/file.js +3 -12
- package/dist/es5/parquetjs/file.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +0 -48
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +0 -47
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +0 -25
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +0 -39
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -51
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DateType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +0 -59
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IntType.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ListType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +0 -85
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MapType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/NullType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +0 -25
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +0 -54
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +0 -31
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +0 -41
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +0 -59
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js +0 -42
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/StringType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js +0 -27
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +0 -27
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/index.js +0 -86
- package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/es5/parquetjs/parser/decoders.js +3 -82
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-cursor.js +5 -37
- package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +2 -88
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-reader.js +14 -67
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/es5/parquetjs/schema/declare.js +3 -7
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +6 -34
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +11 -41
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +3 -84
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/utils/buffer-utils.js +0 -2
- package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/file-utils.js +1 -7
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/read-utils.js +6 -38
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/es5/workers/parquet-worker.js +0 -2
- package/dist/es5/workers/parquet-worker.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +3 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +10 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/convert-schema.js +1 -7
- package/dist/esm/lib/convert-schema.js.map +1 -1
- package/dist/esm/lib/parse-parquet.js +2 -5
- package/dist/esm/lib/parse-parquet.js.map +1 -1
- package/dist/esm/lib/read-array-buffer.js +2 -1
- package/dist/esm/lib/read-array-buffer.js.map +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/index.js.map +1 -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 +2 -3
- package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/esm/parquet-loader.js +3 -1
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-loader.js +3 -1
- package/dist/esm/parquet-wasm-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-writer.js +2 -1
- package/dist/esm/parquet-wasm-writer.js.map +1 -1
- package/dist/esm/parquet-writer.js +2 -2
- package/dist/esm/parquet-writer.js.map +1 -1
- package/dist/esm/parquetjs/codecs/declare.js.map +1 -1
- package/dist/esm/parquetjs/codecs/dictionary.js +2 -1
- package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/esm/parquetjs/codecs/index.js +2 -0
- package/dist/esm/parquetjs/codecs/index.js.map +1 -1
- package/dist/esm/parquetjs/codecs/plain.js +2 -68
- package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
- package/dist/esm/parquetjs/codecs/rle.js +3 -29
- package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
- package/dist/esm/parquetjs/compression.js +9 -5
- package/dist/esm/parquetjs/compression.js.map +1 -1
- package/dist/esm/parquetjs/encoder/writer.js +21 -51
- package/dist/esm/parquetjs/encoder/writer.js.map +1 -1
- package/dist/esm/parquetjs/file.js +1 -0
- package/dist/esm/parquetjs/file.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js +0 -44
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js +0 -42
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js +0 -18
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js +0 -34
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -49
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DateType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js +2 -53
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IntType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ListType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js +0 -90
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MapType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/NullType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js +0 -16
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js +0 -49
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js +0 -33
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js +0 -59
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js +0 -38
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/StringType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Type.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/index.js +1 -0
- package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/esm/parquetjs/parser/decoders.js +9 -39
- package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-cursor.js +1 -13
- package/dist/esm/parquetjs/parser/parquet-cursor.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +6 -32
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-reader.js +1 -18
- package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/esm/parquetjs/schema/declare.js +4 -4
- package/dist/esm/parquetjs/schema/declare.js.map +1 -1
- package/dist/esm/parquetjs/schema/schema.js +3 -29
- package/dist/esm/parquetjs/schema/schema.js.map +1 -1
- package/dist/esm/parquetjs/schema/shred.js +7 -22
- package/dist/esm/parquetjs/schema/shred.js.map +1 -1
- package/dist/esm/parquetjs/schema/types.js +3 -78
- package/dist/esm/parquetjs/schema/types.js.map +1 -1
- package/dist/esm/parquetjs/utils/buffer-utils.js +2 -1
- package/dist/esm/parquetjs/utils/buffer-utils.js.map +1 -1
- package/dist/esm/parquetjs/utils/file-utils.js +1 -0
- package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/esm/parquetjs/utils/read-utils.js +5 -12
- package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/esm/workers/parquet-worker.js.map +1 -1
- package/dist/lib/wasm/load-wasm/load-wasm-browser.js +5 -1
- package/dist/lib/wasm/load-wasm/load-wasm-node.js +5 -1
- package/dist/parquet-worker.js +14 -14
- package/dist/parquet-worker.js.map +2 -2
- package/dist/parquetjs/codecs/index.js +5 -1
- package/dist/parquetjs/encoder/writer.d.ts +1 -0
- package/dist/parquetjs/encoder/writer.d.ts.map +1 -1
- package/dist/parquetjs/encoder/writer.js +5 -1
- package/dist/parquetjs/parquet-thrift/BsonType.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js +5 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +5 -1
- package/dist/parquetjs/parquet-thrift/DateType.js +5 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.js +5 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/EnumType.js +5 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.js +5 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/IntType.js +5 -1
- package/dist/parquetjs/parquet-thrift/JsonType.js +5 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.js +5 -1
- package/dist/parquetjs/parquet-thrift/ListType.js +5 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.js +5 -1
- package/dist/parquetjs/parquet-thrift/MapType.js +5 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js +5 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js +5 -1
- package/dist/parquetjs/parquet-thrift/NullType.js +5 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageLocation.js +5 -1
- package/dist/parquetjs/parquet-thrift/RowGroup.js +5 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.js +5 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.js +5 -1
- package/dist/parquetjs/parquet-thrift/Statistics.js +5 -1
- package/dist/parquetjs/parquet-thrift/StringType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimeType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +5 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.js +5 -1
- package/dist/parquetjs/parquet-thrift/index.js +5 -1
- package/dist/parquetjs/schema/shred.js +5 -1
- package/dist/parquetjs/utils/file-utils.d.ts +2 -0
- package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -1,60 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.ParquetReader = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
|
|
20
13
|
var _parquetEnvelopeReader = require("./parquet-envelope-reader");
|
|
21
|
-
|
|
22
14
|
var _schema = require("../schema/schema");
|
|
23
|
-
|
|
24
15
|
var _parquetCursor = require("./parquet-cursor");
|
|
25
|
-
|
|
26
16
|
var _constants = require("../../constants");
|
|
27
|
-
|
|
28
17
|
var _decoders = require("./decoders");
|
|
29
|
-
|
|
30
18
|
var _Symbol$asyncIterator;
|
|
31
|
-
|
|
32
19
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
33
|
-
|
|
34
20
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
35
|
-
|
|
36
21
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
|
-
|
|
38
22
|
_Symbol$asyncIterator = Symbol.asyncIterator;
|
|
39
|
-
|
|
40
23
|
var ParquetReader = function () {
|
|
41
24
|
function ParquetReader(metadata, envelopeReader) {
|
|
42
25
|
(0, _classCallCheck2.default)(this, ParquetReader);
|
|
43
26
|
(0, _defineProperty2.default)(this, "metadata", void 0);
|
|
44
27
|
(0, _defineProperty2.default)(this, "envelopeReader", void 0);
|
|
45
28
|
(0, _defineProperty2.default)(this, "schema", void 0);
|
|
46
|
-
|
|
47
29
|
if (metadata.version !== _constants.PARQUET_VERSION) {
|
|
48
30
|
throw new Error('invalid parquet version');
|
|
49
31
|
}
|
|
50
|
-
|
|
51
32
|
this.metadata = metadata;
|
|
52
33
|
this.envelopeReader = envelopeReader;
|
|
53
34
|
var root = this.metadata.schema[0];
|
|
54
|
-
|
|
55
35
|
var _decodeSchema = (0, _decoders.decodeSchema)(this.metadata.schema, 1, root.num_children),
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
schema = _decodeSchema.schema;
|
|
58
37
|
this.schema = new _schema.ParquetSchema(schema);
|
|
59
38
|
}
|
|
60
39
|
|
|
@@ -68,7 +47,6 @@ var ParquetReader = function () {
|
|
|
68
47
|
case 0:
|
|
69
48
|
_context.next = 2;
|
|
70
49
|
return this.envelopeReader.close();
|
|
71
|
-
|
|
72
50
|
case 2:
|
|
73
51
|
case "end":
|
|
74
52
|
return _context.stop();
|
|
@@ -76,11 +54,9 @@ var ParquetReader = function () {
|
|
|
76
54
|
}
|
|
77
55
|
}, _callee, this);
|
|
78
56
|
}));
|
|
79
|
-
|
|
80
57
|
function close() {
|
|
81
58
|
return _close.apply(this, arguments);
|
|
82
59
|
}
|
|
83
|
-
|
|
84
60
|
return close;
|
|
85
61
|
}()
|
|
86
62
|
}, {
|
|
@@ -95,24 +71,28 @@ var ParquetReader = function () {
|
|
|
95
71
|
});
|
|
96
72
|
return new _parquetCursor.ParquetCursor(this.metadata, this.envelopeReader, this.schema, columnList);
|
|
97
73
|
}
|
|
74
|
+
|
|
98
75
|
}, {
|
|
99
76
|
key: "getRowCount",
|
|
100
|
-
value:
|
|
77
|
+
value:
|
|
78
|
+
function getRowCount() {
|
|
101
79
|
return Number(this.metadata.num_rows);
|
|
102
80
|
}
|
|
81
|
+
|
|
103
82
|
}, {
|
|
104
83
|
key: "getSchema",
|
|
105
|
-
value:
|
|
84
|
+
value:
|
|
85
|
+
function getSchema() {
|
|
106
86
|
return this.schema;
|
|
107
87
|
}
|
|
88
|
+
|
|
108
89
|
}, {
|
|
109
90
|
key: "getMetadata",
|
|
110
|
-
value:
|
|
91
|
+
value:
|
|
92
|
+
function getMetadata() {
|
|
111
93
|
var md = {};
|
|
112
|
-
|
|
113
94
|
var _iterator = _createForOfIteratorHelper(this.metadata.key_value_metadata),
|
|
114
|
-
|
|
115
|
-
|
|
95
|
+
_step;
|
|
116
96
|
try {
|
|
117
97
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
118
98
|
var kv = _step.value;
|
|
@@ -123,12 +103,13 @@ var ParquetReader = function () {
|
|
|
123
103
|
} finally {
|
|
124
104
|
_iterator.f();
|
|
125
105
|
}
|
|
126
|
-
|
|
127
106
|
return md;
|
|
128
107
|
}
|
|
108
|
+
|
|
129
109
|
}, {
|
|
130
110
|
key: _Symbol$asyncIterator,
|
|
131
|
-
value:
|
|
111
|
+
value:
|
|
112
|
+
function value() {
|
|
132
113
|
return this.getCursor()[Symbol.asyncIterator]();
|
|
133
114
|
}
|
|
134
115
|
}], [{
|
|
@@ -149,11 +130,9 @@ var ParquetReader = function () {
|
|
|
149
130
|
case 0:
|
|
150
131
|
_context2.next = 2;
|
|
151
132
|
return blob.slice(start, start + length).arrayBuffer();
|
|
152
|
-
|
|
153
133
|
case 2:
|
|
154
134
|
arrayBuffer = _context2.sent;
|
|
155
135
|
return _context2.abrupt("return", Buffer.from(arrayBuffer));
|
|
156
|
-
|
|
157
136
|
case 4:
|
|
158
137
|
case "end":
|
|
159
138
|
return _context2.stop();
|
|
@@ -161,12 +140,10 @@ var ParquetReader = function () {
|
|
|
161
140
|
}
|
|
162
141
|
}, _callee2);
|
|
163
142
|
}));
|
|
164
|
-
|
|
165
143
|
return function readFn(_x2, _x3) {
|
|
166
144
|
return _ref.apply(this, arguments);
|
|
167
145
|
};
|
|
168
146
|
}();
|
|
169
|
-
|
|
170
147
|
closeFn = function () {
|
|
171
148
|
var _ref2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
|
|
172
149
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
@@ -179,35 +156,28 @@ var ParquetReader = function () {
|
|
|
179
156
|
}
|
|
180
157
|
}, _callee3);
|
|
181
158
|
}));
|
|
182
|
-
|
|
183
159
|
return function closeFn() {
|
|
184
160
|
return _ref2.apply(this, arguments);
|
|
185
161
|
};
|
|
186
162
|
}();
|
|
187
|
-
|
|
188
163
|
size = blob.size;
|
|
189
164
|
envelopeReader = new _parquetEnvelopeReader.ParquetEnvelopeReader(readFn, closeFn, size);
|
|
190
165
|
_context4.prev = 4;
|
|
191
166
|
_context4.next = 7;
|
|
192
167
|
return envelopeReader.readHeader();
|
|
193
|
-
|
|
194
168
|
case 7:
|
|
195
169
|
_context4.next = 9;
|
|
196
170
|
return envelopeReader.readFooter();
|
|
197
|
-
|
|
198
171
|
case 9:
|
|
199
172
|
metadata = _context4.sent;
|
|
200
173
|
return _context4.abrupt("return", new ParquetReader(metadata, envelopeReader));
|
|
201
|
-
|
|
202
174
|
case 13:
|
|
203
175
|
_context4.prev = 13;
|
|
204
176
|
_context4.t0 = _context4["catch"](4);
|
|
205
177
|
_context4.next = 17;
|
|
206
178
|
return envelopeReader.close();
|
|
207
|
-
|
|
208
179
|
case 17:
|
|
209
180
|
throw _context4.t0;
|
|
210
|
-
|
|
211
181
|
case 18:
|
|
212
182
|
case "end":
|
|
213
183
|
return _context4.stop();
|
|
@@ -215,11 +185,9 @@ var ParquetReader = function () {
|
|
|
215
185
|
}
|
|
216
186
|
}, _callee4, null, [[4, 13]]);
|
|
217
187
|
}));
|
|
218
|
-
|
|
219
188
|
function openBlob(_x) {
|
|
220
189
|
return _openBlob.apply(this, arguments);
|
|
221
190
|
}
|
|
222
|
-
|
|
223
191
|
return openBlob;
|
|
224
192
|
}()
|
|
225
193
|
}, {
|
|
@@ -238,7 +206,6 @@ var ParquetReader = function () {
|
|
|
238
206
|
switch (_context5.prev = _context5.next) {
|
|
239
207
|
case 0:
|
|
240
208
|
return _context5.abrupt("return", Buffer.from(arrayBuffer, start, length));
|
|
241
|
-
|
|
242
209
|
case 1:
|
|
243
210
|
case "end":
|
|
244
211
|
return _context5.stop();
|
|
@@ -246,12 +213,10 @@ var ParquetReader = function () {
|
|
|
246
213
|
}
|
|
247
214
|
}, _callee5);
|
|
248
215
|
}));
|
|
249
|
-
|
|
250
216
|
return function readFn(_x5, _x6) {
|
|
251
217
|
return _ref3.apply(this, arguments);
|
|
252
218
|
};
|
|
253
219
|
}();
|
|
254
|
-
|
|
255
220
|
closeFn = function () {
|
|
256
221
|
var _ref4 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6() {
|
|
257
222
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
@@ -264,35 +229,28 @@ var ParquetReader = function () {
|
|
|
264
229
|
}
|
|
265
230
|
}, _callee6);
|
|
266
231
|
}));
|
|
267
|
-
|
|
268
232
|
return function closeFn() {
|
|
269
233
|
return _ref4.apply(this, arguments);
|
|
270
234
|
};
|
|
271
235
|
}();
|
|
272
|
-
|
|
273
236
|
size = arrayBuffer.byteLength;
|
|
274
237
|
envelopeReader = new _parquetEnvelopeReader.ParquetEnvelopeReader(readFn, closeFn, size);
|
|
275
238
|
_context7.prev = 4;
|
|
276
239
|
_context7.next = 7;
|
|
277
240
|
return envelopeReader.readHeader();
|
|
278
|
-
|
|
279
241
|
case 7:
|
|
280
242
|
_context7.next = 9;
|
|
281
243
|
return envelopeReader.readFooter();
|
|
282
|
-
|
|
283
244
|
case 9:
|
|
284
245
|
metadata = _context7.sent;
|
|
285
246
|
return _context7.abrupt("return", new ParquetReader(metadata, envelopeReader));
|
|
286
|
-
|
|
287
247
|
case 13:
|
|
288
248
|
_context7.prev = 13;
|
|
289
249
|
_context7.t0 = _context7["catch"](4);
|
|
290
250
|
_context7.next = 17;
|
|
291
251
|
return envelopeReader.close();
|
|
292
|
-
|
|
293
252
|
case 17:
|
|
294
253
|
throw _context7.t0;
|
|
295
|
-
|
|
296
254
|
case 18:
|
|
297
255
|
case "end":
|
|
298
256
|
return _context7.stop();
|
|
@@ -300,11 +258,9 @@ var ParquetReader = function () {
|
|
|
300
258
|
}
|
|
301
259
|
}, _callee7, null, [[4, 13]]);
|
|
302
260
|
}));
|
|
303
|
-
|
|
304
261
|
function openArrayBuffer(_x4) {
|
|
305
262
|
return _openArrayBuffer.apply(this, arguments);
|
|
306
263
|
}
|
|
307
|
-
|
|
308
264
|
return openArrayBuffer;
|
|
309
265
|
}()
|
|
310
266
|
}, {
|
|
@@ -318,30 +274,24 @@ var ParquetReader = function () {
|
|
|
318
274
|
case 0:
|
|
319
275
|
_context8.next = 2;
|
|
320
276
|
return _parquetEnvelopeReader.ParquetEnvelopeReader.openBuffer(buffer);
|
|
321
|
-
|
|
322
277
|
case 2:
|
|
323
278
|
envelopeReader = _context8.sent;
|
|
324
279
|
_context8.prev = 3;
|
|
325
280
|
_context8.next = 6;
|
|
326
281
|
return envelopeReader.readHeader();
|
|
327
|
-
|
|
328
282
|
case 6:
|
|
329
283
|
_context8.next = 8;
|
|
330
284
|
return envelopeReader.readFooter();
|
|
331
|
-
|
|
332
285
|
case 8:
|
|
333
286
|
metadata = _context8.sent;
|
|
334
287
|
return _context8.abrupt("return", new ParquetReader(metadata, envelopeReader));
|
|
335
|
-
|
|
336
288
|
case 12:
|
|
337
289
|
_context8.prev = 12;
|
|
338
290
|
_context8.t0 = _context8["catch"](3);
|
|
339
291
|
_context8.next = 16;
|
|
340
292
|
return envelopeReader.close();
|
|
341
|
-
|
|
342
293
|
case 16:
|
|
343
294
|
throw _context8.t0;
|
|
344
|
-
|
|
345
295
|
case 17:
|
|
346
296
|
case "end":
|
|
347
297
|
return _context8.stop();
|
|
@@ -349,16 +299,13 @@ var ParquetReader = function () {
|
|
|
349
299
|
}
|
|
350
300
|
}, _callee8, null, [[3, 12]]);
|
|
351
301
|
}));
|
|
352
|
-
|
|
353
302
|
function openBuffer(_x7) {
|
|
354
303
|
return _openBuffer.apply(this, arguments);
|
|
355
304
|
}
|
|
356
|
-
|
|
357
305
|
return openBuffer;
|
|
358
306
|
}()
|
|
359
307
|
}]);
|
|
360
308
|
return ParquetReader;
|
|
361
309
|
}();
|
|
362
|
-
|
|
363
310
|
exports.ParquetReader = ParquetReader;
|
|
364
311
|
//# sourceMappingURL=parquet-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/parser/parquet-reader.ts"],"names":["Symbol","asyncIterator","ParquetReader","metadata","envelopeReader","version","PARQUET_VERSION","Error","root","schema","num_children","ParquetSchema","close","columnList","map","x","Array","isArray","ParquetCursor","Number","num_rows","md","key_value_metadata","kv","key","value","getCursor","blob","readFn","start","length","slice","arrayBuffer","Buffer","from","closeFn","size","ParquetEnvelopeReader","readHeader","readFooter","byteLength","buffer","openBuffer"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;wBAyJGA,MAAM,CAACC,a;;IAhJGC,a;AA8DX,yBAAYC,QAAZ,EAAoCC,cAApC,EAA2E;AAAA;AAAA;AAAA;AAAA;;AACzE,QAAID,QAAQ,CAACE,OAAT,KAAqBC,0BAAzB,EAA0C;AACxC,YAAM,IAAIC,KAAJ,CAAU,yBAAV,CAAN;AACD;;AAED,SAAKJ,QAAL,GAAgBA,QAAhB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,QAAMI,IAAI,GAAG,KAAKL,QAAL,CAAcM,MAAd,CAAqB,CAArB,CAAb;;AACA,wBAAiB,4BAAa,KAAKN,QAAL,CAAcM,MAA3B,EAAmC,CAAnC,EAAsCD,IAAI,CAACE,YAA3C,CAAjB;AAAA,QAAOD,MAAP,iBAAOA,MAAP;;AACA,SAAKA,MAAL,GAAc,IAAIE,qBAAJ,CAAkBF,MAAlB,CAAd;AACD;;;;;6EAMD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACQ,KAAKL,cAAL,CAAoBQ,KAApB,EADR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAmBA,mBAAUC,UAAV,EAAyE;AACvE,UAAI,CAACA,UAAL,EAAiB;AAEfA,QAAAA,UAAU,GAAG,EAAb;AACD;;AAGDA,MAAAA,UAAU,GAAGA,UAAU,CAACC,GAAX,CAAe,UAACC,CAAD;AAAA,eAAQC,KAAK,CAACC,OAAN,CAAcF,CAAd,IAAmBA,CAAnB,GAAuB,CAACA,CAAD,CAA/B;AAAA,OAAf,CAAb;AAEA,aAAO,IAAIG,4BAAJ,CACL,KAAKf,QADA,EAEL,KAAKC,cAFA,EAGL,KAAKK,MAHA,EAILI,UAJK,CAAP;AAMD;;;WAMD,uBAAsB;AACpB,aAAOM,MAAM,CAAC,KAAKhB,QAAL,CAAciB,QAAf,CAAb;AACD;;;WAKD,qBAA2B;AACzB,aAAO,KAAKX,MAAZ;AACD;;;WAKD,uBAAsC;AACpC,UAAMY,EAA0B,GAAG,EAAnC;;AADoC,iDAEnB,KAAKlB,QAAL,CAAcmB,kBAFK;AAAA;;AAAA;AAEpC,4DAAoD;AAAA,cAAzCC,EAAyC;AAClDF,UAAAA,EAAE,CAACE,EAAE,CAACC,GAAJ,CAAF,GAAaD,EAAE,CAACE,KAAhB;AACD;AAJmC;AAAA;AAAA;AAAA;AAAA;;AAKpC,aAAOJ,EAAP;AACD;;;WAMD,iBAA2C;AACzC,aAAO,KAAKK,SAAL,GAAiB1B,MAAM,CAACC,aAAxB,GAAP;AACD;;;;gFA9ID,kBAAyB0B,IAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AACQC,gBAAAA,MADR;AAAA,uFACiB,kBAAOC,KAAP,EAAsBC,MAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCACaH,IAAI,CAACI,KAAL,CAAWF,KAAX,EAAkBA,KAAK,GAAGC,MAA1B,EAAkCE,WAAlC,EADb;;AAAA;AACPA,4BAAAA,WADO;AAAA,8DAENC,MAAM,CAACC,IAAP,CAAYF,WAAZ,CAFM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBADjB;;AAAA,kCACQJ,MADR;AAAA;AAAA;AAAA;;AAKQO,gBAAAA,OALR;AAAA,wFAKkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBALlB;;AAAA,kCAKQA,OALR;AAAA;AAAA;AAAA;;AAMQC,gBAAAA,IANR,GAMeT,IAAI,CAACS,IANpB;AAOQhC,gBAAAA,cAPR,GAOyB,IAAIiC,4CAAJ,CAA0BT,MAA1B,EAAkCO,OAAlC,EAA2CC,IAA3C,CAPzB;AAAA;AAAA;AAAA,uBASUhC,cAAc,CAACkC,UAAf,EATV;;AAAA;AAAA;AAAA,uBAU2BlC,cAAc,CAACmC,UAAf,EAV3B;;AAAA;AAUUpC,gBAAAA,QAVV;AAAA,kDAWW,IAAID,aAAJ,CAAkBC,QAAlB,EAA4BC,cAA5B,CAXX;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAaUA,cAAc,CAACQ,KAAf,EAbV;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uFAqBA,kBAAgCoB,WAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AACQJ,gBAAAA,MADR;AAAA,wFACiB,kBAAOC,KAAP,EAAsBC,MAAtB;AAAA;AAAA;AAAA;AAAA;AAAA,8DAAyCG,MAAM,CAACC,IAAP,CAAYF,WAAZ,EAAyBH,KAAzB,EAAgCC,MAAhC,CAAzC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBADjB;;AAAA,kCACQF,MADR;AAAA;AAAA;AAAA;;AAEQO,gBAAAA,OAFR;AAAA,wFAEkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAFlB;;AAAA,kCAEQA,OAFR;AAAA;AAAA;AAAA;;AAGQC,gBAAAA,IAHR,GAGeJ,WAAW,CAACQ,UAH3B;AAIQpC,gBAAAA,cAJR,GAIyB,IAAIiC,4CAAJ,CAA0BT,MAA1B,EAAkCO,OAAlC,EAA2CC,IAA3C,CAJzB;AAAA;AAAA;AAAA,uBAMUhC,cAAc,CAACkC,UAAf,EANV;;AAAA;AAAA;AAAA,uBAO2BlC,cAAc,CAACmC,UAAf,EAP3B;;AAAA;AAOUpC,gBAAAA,QAPV;AAAA,kDAQW,IAAID,aAAJ,CAAkBC,QAAlB,EAA4BC,cAA5B,CARX;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAUUA,cAAc,CAACQ,KAAf,EAVV;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kFAeA,kBAA2B6B,MAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAC+BJ,6CAAsBK,UAAtB,CAAiCD,MAAjC,CAD/B;;AAAA;AACQrC,gBAAAA,cADR;AAAA;AAAA;AAAA,uBAGUA,cAAc,CAACkC,UAAf,EAHV;;AAAA;AAAA;AAAA,uBAI2BlC,cAAc,CAACmC,UAAf,EAJ3B;;AAAA;AAIUpC,gBAAAA,QAJV;AAAA,kDAKW,IAAID,aAAJ,CAAqBC,QAArB,EAA+BC,cAA/B,CALX;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAOUA,cAAc,CAACQ,KAAf,EAPV;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {ParquetEnvelopeReader} from './parquet-envelope-reader';\nimport {FileMetaData} from '../parquet-thrift';\nimport {ParquetSchema} from '../schema/schema';\nimport {ParquetCursor} from './parquet-cursor';\nimport {PARQUET_VERSION} from '../../constants';\nimport {decodeSchema} from './decoders';\n\n/**\n * A parquet reader allows retrieving the rows from a parquet file in order.\n * The basic usage is to create a reader and then retrieve a cursor/iterator\n * which allows you to consume row after row until all rows have been read. It is\n * important that you call close() after you are finished reading the file to\n * avoid leaking file descriptors.\n */\nexport class ParquetReader<T> implements AsyncIterable<T> {\n /**\n * return a new parquet reader initialized with a read function\n */\n static async openBlob<T>(blob: Blob): Promise<ParquetReader<T>> {\n const readFn = async (start: number, length: number) => {\n const arrayBuffer = await blob.slice(start, start + length).arrayBuffer();\n return Buffer.from(arrayBuffer);\n };\n const closeFn = async () => {};\n const size = blob.size;\n const envelopeReader = new ParquetEnvelopeReader(readFn, closeFn, size);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n /**\n * return a new parquet reader initialized with a read function\n */\n static async openArrayBuffer<T>(arrayBuffer: ArrayBuffer): Promise<ParquetReader<T>> {\n const readFn = async (start: number, length: number) => Buffer.from(arrayBuffer, start, length);\n const closeFn = async () => {};\n const size = arrayBuffer.byteLength;\n const envelopeReader = new ParquetEnvelopeReader(readFn, closeFn, size);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n static async openBuffer<T>(buffer: Buffer): Promise<ParquetReader<T>> {\n const envelopeReader = await ParquetEnvelopeReader.openBuffer(buffer);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader<T>(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n public metadata: FileMetaData;\n public envelopeReader: ParquetEnvelopeReader;\n public schema: ParquetSchema;\n\n /**\n * Create a new parquet reader from the file metadata and an envelope reader.\n * It is not recommended to call this constructor directly except for advanced\n * and internal use cases. Consider using one of the open{File,Buffer} methods\n * instead\n */\n constructor(metadata: FileMetaData, envelopeReader: ParquetEnvelopeReader) {\n if (metadata.version !== PARQUET_VERSION) {\n throw new Error('invalid parquet version');\n }\n\n this.metadata = metadata;\n this.envelopeReader = envelopeReader;\n const root = this.metadata.schema[0];\n const {schema} = decodeSchema(this.metadata.schema, 1, root.num_children!);\n this.schema = new ParquetSchema(schema);\n }\n\n /**\n * Close this parquet reader. You MUST call this method once you're finished\n * reading rows\n */\n async close(): Promise<void> {\n await this.envelopeReader.close();\n // this.envelopeReader = null;\n // this.metadata = null;\n }\n\n /**\n * Return a cursor to the file. You may open more than one cursor and use\n * them concurrently. All cursors become invalid once close() is called on\n * the reader object.\n *\n * The required_columns parameter controls which columns are actually read\n * from disk. An empty array or no value implies all columns. A list of column\n * names means that only those columns should be loaded from disk.\n */\n getCursor(): ParquetCursor<T>;\n // @ts-ignore\n getCursor<K extends keyof T>(columnList: (K | K[])[]): ParquetCursor<Pick<T, K>>;\n getCursor(columnList: (string | string[])[]): ParquetCursor<Partial<T>>;\n getCursor(columnList?: (string | string[])[]): ParquetCursor<Partial<T>> {\n if (!columnList) {\n // tslint:disable-next-line:no-parameter-reassignment\n columnList = [];\n }\n\n // tslint:disable-next-line:no-parameter-reassignment\n columnList = columnList.map((x) => (Array.isArray(x) ? x : [x]));\n\n return new ParquetCursor<T>(\n this.metadata,\n this.envelopeReader,\n this.schema,\n columnList as string[][]\n );\n }\n\n /**\n * Return the number of rows in this file. Note that the number of rows is\n * not neccessarily equal to the number of rows in each column.\n */\n getRowCount(): number {\n return Number(this.metadata.num_rows);\n }\n\n /**\n * Returns the ParquetSchema for this file\n */\n getSchema(): ParquetSchema {\n return this.schema;\n }\n\n /**\n * Returns the user (key/value) metadata for this file\n */\n getMetadata(): Record<string, string> {\n const md: Record<string, string> = {};\n for (const kv of this.metadata.key_value_metadata!) {\n md[kv.key] = kv.value!;\n }\n return md;\n }\n\n /**\n * Implement AsyncIterable\n */\n // tslint:disable-next-line:function-name\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this.getCursor()[Symbol.asyncIterator]();\n }\n}\n"],"file":"parquet-reader.js"}
|
|
1
|
+
{"version":3,"file":"parquet-reader.js","names":["Symbol","asyncIterator","ParquetReader","metadata","envelopeReader","version","PARQUET_VERSION","Error","root","schema","decodeSchema","num_children","ParquetSchema","close","columnList","map","x","Array","isArray","ParquetCursor","Number","num_rows","md","key_value_metadata","kv","key","value","getCursor","blob","readFn","start","length","slice","arrayBuffer","Buffer","from","closeFn","size","ParquetEnvelopeReader","readHeader","readFooter","byteLength","buffer","openBuffer"],"sources":["../../../../src/parquetjs/parser/parquet-reader.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {ParquetEnvelopeReader} from './parquet-envelope-reader';\nimport {FileMetaData} from '../parquet-thrift';\nimport {ParquetSchema} from '../schema/schema';\nimport {ParquetCursor} from './parquet-cursor';\nimport {PARQUET_VERSION} from '../../constants';\nimport {decodeSchema} from './decoders';\n\n/**\n * A parquet reader allows retrieving the rows from a parquet file in order.\n * The basic usage is to create a reader and then retrieve a cursor/iterator\n * which allows you to consume row after row until all rows have been read. It is\n * important that you call close() after you are finished reading the file to\n * avoid leaking file descriptors.\n */\nexport class ParquetReader<T> implements AsyncIterable<T> {\n /**\n * return a new parquet reader initialized with a read function\n */\n static async openBlob<T>(blob: Blob): Promise<ParquetReader<T>> {\n const readFn = async (start: number, length: number) => {\n const arrayBuffer = await blob.slice(start, start + length).arrayBuffer();\n return Buffer.from(arrayBuffer);\n };\n const closeFn = async () => {};\n const size = blob.size;\n const envelopeReader = new ParquetEnvelopeReader(readFn, closeFn, size);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n /**\n * return a new parquet reader initialized with a read function\n */\n static async openArrayBuffer<T>(arrayBuffer: ArrayBuffer): Promise<ParquetReader<T>> {\n const readFn = async (start: number, length: number) => Buffer.from(arrayBuffer, start, length);\n const closeFn = async () => {};\n const size = arrayBuffer.byteLength;\n const envelopeReader = new ParquetEnvelopeReader(readFn, closeFn, size);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n static async openBuffer<T>(buffer: Buffer): Promise<ParquetReader<T>> {\n const envelopeReader = await ParquetEnvelopeReader.openBuffer(buffer);\n try {\n await envelopeReader.readHeader();\n const metadata = await envelopeReader.readFooter();\n return new ParquetReader<T>(metadata, envelopeReader);\n } catch (err) {\n await envelopeReader.close();\n throw err;\n }\n }\n\n public metadata: FileMetaData;\n public envelopeReader: ParquetEnvelopeReader;\n public schema: ParquetSchema;\n\n /**\n * Create a new parquet reader from the file metadata and an envelope reader.\n * It is not recommended to call this constructor directly except for advanced\n * and internal use cases. Consider using one of the open{File,Buffer} methods\n * instead\n */\n constructor(metadata: FileMetaData, envelopeReader: ParquetEnvelopeReader) {\n if (metadata.version !== PARQUET_VERSION) {\n throw new Error('invalid parquet version');\n }\n\n this.metadata = metadata;\n this.envelopeReader = envelopeReader;\n const root = this.metadata.schema[0];\n const {schema} = decodeSchema(this.metadata.schema, 1, root.num_children!);\n this.schema = new ParquetSchema(schema);\n }\n\n /**\n * Close this parquet reader. You MUST call this method once you're finished\n * reading rows\n */\n async close(): Promise<void> {\n await this.envelopeReader.close();\n // this.envelopeReader = null;\n // this.metadata = null;\n }\n\n /**\n * Return a cursor to the file. You may open more than one cursor and use\n * them concurrently. All cursors become invalid once close() is called on\n * the reader object.\n *\n * The required_columns parameter controls which columns are actually read\n * from disk. An empty array or no value implies all columns. A list of column\n * names means that only those columns should be loaded from disk.\n */\n getCursor(): ParquetCursor<T>;\n // @ts-ignore\n getCursor<K extends keyof T>(columnList: (K | K[])[]): ParquetCursor<Pick<T, K>>;\n getCursor(columnList: (string | string[])[]): ParquetCursor<Partial<T>>;\n getCursor(columnList?: (string | string[])[]): ParquetCursor<Partial<T>> {\n if (!columnList) {\n // tslint:disable-next-line:no-parameter-reassignment\n columnList = [];\n }\n\n // tslint:disable-next-line:no-parameter-reassignment\n columnList = columnList.map((x) => (Array.isArray(x) ? x : [x]));\n\n return new ParquetCursor<T>(\n this.metadata,\n this.envelopeReader,\n this.schema,\n columnList as string[][]\n );\n }\n\n /**\n * Return the number of rows in this file. Note that the number of rows is\n * not neccessarily equal to the number of rows in each column.\n */\n getRowCount(): number {\n return Number(this.metadata.num_rows);\n }\n\n /**\n * Returns the ParquetSchema for this file\n */\n getSchema(): ParquetSchema {\n return this.schema;\n }\n\n /**\n * Returns the user (key/value) metadata for this file\n */\n getMetadata(): Record<string, string> {\n const md: Record<string, string> = {};\n for (const kv of this.metadata.key_value_metadata!) {\n md[kv.key] = kv.value!;\n }\n return md;\n }\n\n /**\n * Implement AsyncIterable\n */\n // tslint:disable-next-line:function-name\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this.getCursor()[Symbol.asyncIterator]();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.ParquetBuffer = void 0;
|
|
9
|
-
|
|
8
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var ParquetBuffer = function ParquetBuffer() {
|
|
11
|
+
var ParquetBuffer = (0, _createClass2.default)(function ParquetBuffer() {
|
|
15
12
|
var rowCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
16
13
|
var columnData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17
14
|
(0, _classCallCheck2.default)(this, ParquetBuffer);
|
|
@@ -19,7 +16,6 @@ var ParquetBuffer = function ParquetBuffer() {
|
|
|
19
16
|
(0, _defineProperty2.default)(this, "columnData", void 0);
|
|
20
17
|
this.rowCount = rowCount;
|
|
21
18
|
this.columnData = columnData;
|
|
22
|
-
};
|
|
23
|
-
|
|
19
|
+
});
|
|
24
20
|
exports.ParquetBuffer = ParquetBuffer;
|
|
25
21
|
//# sourceMappingURL=declare.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"declare.js","names":["ParquetBuffer","rowCount","columnData"],"sources":["../../../../src/parquetjs/schema/declare.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport Int64 from 'node-int64';\nimport type {PageHeader} from '../parquet-thrift';\n\nexport type ParquetCodec = 'PLAIN' | 'RLE' | 'PLAIN_DICTIONARY';\nexport type ParquetCompression =\n | 'UNCOMPRESSED'\n | 'GZIP'\n | 'SNAPPY'\n | 'LZO'\n | 'BROTLI'\n | 'LZ4'\n | 'LZ4_RAW'\n | 'ZSTD';\nexport type RepetitionType = 'REQUIRED' | 'OPTIONAL' | 'REPEATED';\nexport type ParquetType = PrimitiveType | OriginalType;\n\n/**\n * Physical type\n */\nexport type PrimitiveType =\n // Base Types\n | 'BOOLEAN' // 0\n | 'INT32' // 1\n | 'INT64' // 2\n | 'INT96' // 3\n | 'FLOAT' // 4\n | 'DOUBLE' // 5\n | 'BYTE_ARRAY' // 6,\n | 'FIXED_LEN_BYTE_ARRAY'; // 7\n\n/**\n * Logical type\n */\nexport type OriginalType =\n // Converted Types\n | 'UTF8' // 0\n // | 'MAP' // 1\n // | 'MAP_KEY_VALUE' // 2\n // | 'LIST' // 3\n // | 'ENUM' // 4\n // | 'DECIMAL' // 5\n | 'DECIMAL_INT32' // 5\n | 'DECIMAL_INT64' // 5\n | 'DECIMAL_BYTE_ARRAY' // 5\n | 'DECIMAL_FIXED_LEN_BYTE_ARRAY' // 5\n | 'DATE' // 6\n | 'TIME_MILLIS' // 7\n | 'TIME_MICROS' // 8\n | 'TIMESTAMP_MILLIS' // 9\n | 'TIMESTAMP_MICROS' // 10\n | 'UINT_8' // 11\n | 'UINT_16' // 12\n | 'UINT_32' // 13\n | 'UINT_64' // 14\n | 'INT_8' // 15\n | 'INT_16' // 16\n | 'INT_32' // 17\n | 'INT_64' // 18\n | 'JSON' // 19\n | 'BSON' // 20\n | 'INTERVAL'; // 21\n\nexport type ParquetDictionary = string[];\n\nexport interface SchemaDefinition {\n [string: string]: FieldDefinition;\n}\n\nexport interface FieldDefinition {\n type?: ParquetType;\n typeLength?: number;\n presision?: number;\n scale?: number;\n encoding?: ParquetCodec;\n compression?: ParquetCompression;\n optional?: boolean;\n repeated?: boolean;\n fields?: SchemaDefinition;\n}\n\nexport interface ParquetField {\n name: string;\n path: string[];\n key: string;\n primitiveType?: PrimitiveType;\n originalType?: OriginalType;\n repetitionType: RepetitionType;\n typeLength?: number;\n presision?: number;\n scale?: number;\n encoding?: ParquetCodec;\n compression?: ParquetCompression;\n rLevelMax: number;\n dLevelMax: number;\n isNested?: boolean;\n fieldCount?: number;\n fields?: Record<string, ParquetField>;\n}\n\nexport interface ParquetOptions {\n type: ParquetType;\n rLevelMax: number;\n dLevelMax: number;\n compression: ParquetCompression;\n column: ParquetField;\n numValues?: Int64;\n dictionary?: ParquetDictionary;\n}\n\nexport interface ParquetData {\n dlevels: number[];\n rlevels: number[];\n values: any[];\n count: number;\n pageHeaders: PageHeader[];\n}\n\nexport interface ParquetPageData {\n dlevels: number[];\n rlevels: number[];\n values: any[];\n count: number;\n dictionary?: ParquetDictionary;\n pageHeader: PageHeader;\n}\n\nexport interface ParquetRecord {\n [key: string]: any;\n}\n\nexport class ParquetBuffer {\n rowCount: number;\n columnData: Record<string, ParquetData>;\n constructor(rowCount: number = 0, columnData: Record<string, ParquetData> = {}) {\n this.rowCount = rowCount;\n this.columnData = columnData;\n }\n}\n"],"mappings":";;;;;;;;;;IAmIaA,aAAa,8BAGxB,yBAAgF;EAAA,IAApEC,QAAgB,uEAAG,CAAC;EAAA,IAAEC,UAAuC,uEAAG,CAAC,CAAC;EAAA;EAAA;EAAA;EAC5E,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EACxB,IAAI,CAACC,UAAU,GAAGA,UAAU;AAC9B,CAAC;AAAA"}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.ParquetSchema = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
11
|
var _codecs = require("../codecs");
|
|
17
|
-
|
|
18
12
|
var _compression = require("../compression");
|
|
19
|
-
|
|
20
13
|
var _shred = require("./shred");
|
|
21
|
-
|
|
22
14
|
var _types = require("./types");
|
|
23
|
-
|
|
24
15
|
var ParquetSchema = function () {
|
|
25
16
|
function ParquetSchema(schema) {
|
|
26
17
|
(0, _classCallCheck2.default)(this, ParquetSchema);
|
|
@@ -34,7 +25,8 @@ var ParquetSchema = function () {
|
|
|
34
25
|
|
|
35
26
|
(0, _createClass2.default)(ParquetSchema, [{
|
|
36
27
|
key: "findField",
|
|
37
|
-
value:
|
|
28
|
+
value:
|
|
29
|
+
function findField(path) {
|
|
38
30
|
if (typeof path === 'string') {
|
|
39
31
|
path = path.split(',');
|
|
40
32
|
} else {
|
|
@@ -42,31 +34,27 @@ var ParquetSchema = function () {
|
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
var n = this.fields;
|
|
45
|
-
|
|
46
37
|
for (; path.length > 1; path.shift()) {
|
|
47
38
|
n = n[path[0]].fields;
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
return n[path[0]];
|
|
51
41
|
}
|
|
42
|
+
|
|
52
43
|
}, {
|
|
53
44
|
key: "findFieldBranch",
|
|
54
|
-
value:
|
|
45
|
+
value:
|
|
46
|
+
function findFieldBranch(path) {
|
|
55
47
|
if (typeof path === 'string') {
|
|
56
48
|
path = path.split(',');
|
|
57
49
|
}
|
|
58
|
-
|
|
59
50
|
var branch = [];
|
|
60
51
|
var n = this.fields;
|
|
61
|
-
|
|
62
52
|
for (; path.length > 0; path.shift()) {
|
|
63
53
|
branch.push(n[path[0]]);
|
|
64
|
-
|
|
65
54
|
if (path.length > 1) {
|
|
66
55
|
n = n[path[0]].fields;
|
|
67
56
|
}
|
|
68
57
|
}
|
|
69
|
-
|
|
70
58
|
return branch;
|
|
71
59
|
}
|
|
72
60
|
}, {
|
|
@@ -94,13 +82,10 @@ var ParquetSchema = function () {
|
|
|
94
82
|
}]);
|
|
95
83
|
return ParquetSchema;
|
|
96
84
|
}();
|
|
97
|
-
|
|
98
85
|
exports.ParquetSchema = ParquetSchema;
|
|
99
|
-
|
|
100
86
|
function setCompress(schema, type) {
|
|
101
87
|
for (var name in schema) {
|
|
102
88
|
var node = schema[name];
|
|
103
|
-
|
|
104
89
|
if (node.fields) {
|
|
105
90
|
setCompress(node.fields, type);
|
|
106
91
|
} else {
|
|
@@ -111,20 +96,18 @@ function setCompress(schema, type) {
|
|
|
111
96
|
|
|
112
97
|
function buildFields(schema, rLevelParentMax, dLevelParentMax, path) {
|
|
113
98
|
var fieldList = {};
|
|
114
|
-
|
|
115
99
|
for (var name in schema) {
|
|
116
100
|
var opts = schema[name];
|
|
101
|
+
|
|
117
102
|
var required = !opts.optional;
|
|
118
103
|
var repeated = Boolean(opts.repeated);
|
|
119
104
|
var rLevelMax = rLevelParentMax;
|
|
120
105
|
var dLevelMax = dLevelParentMax;
|
|
121
106
|
var repetitionType = 'REQUIRED';
|
|
122
|
-
|
|
123
107
|
if (!required) {
|
|
124
108
|
repetitionType = 'OPTIONAL';
|
|
125
109
|
dLevelMax++;
|
|
126
110
|
}
|
|
127
|
-
|
|
128
111
|
if (repeated) {
|
|
129
112
|
repetitionType = 'REPEATED';
|
|
130
113
|
rLevelMax++;
|
|
@@ -133,7 +116,6 @@ function buildFields(schema, rLevelParentMax, dLevelParentMax, path) {
|
|
|
133
116
|
|
|
134
117
|
if (opts.fields) {
|
|
135
118
|
var _cpath = path.concat([name]);
|
|
136
|
-
|
|
137
119
|
fieldList[name] = {
|
|
138
120
|
name: name,
|
|
139
121
|
path: _cpath,
|
|
@@ -149,19 +131,14 @@ function buildFields(schema, rLevelParentMax, dLevelParentMax, path) {
|
|
|
149
131
|
}
|
|
150
132
|
|
|
151
133
|
var typeDef = _types.PARQUET_LOGICAL_TYPES[opts.type];
|
|
152
|
-
|
|
153
134
|
if (!typeDef) {
|
|
154
135
|
throw new Error("invalid parquet type: ".concat(opts.type));
|
|
155
136
|
}
|
|
156
|
-
|
|
157
137
|
opts.encoding = opts.encoding || 'PLAIN';
|
|
158
|
-
|
|
159
138
|
if (!(opts.encoding in _codecs.PARQUET_CODECS)) {
|
|
160
139
|
throw new Error("unsupported parquet encoding: ".concat(opts.encoding));
|
|
161
140
|
}
|
|
162
|
-
|
|
163
141
|
opts.compression = opts.compression || 'UNCOMPRESSED';
|
|
164
|
-
|
|
165
142
|
if (!(opts.compression in _compression.PARQUET_COMPRESSION_METHODS)) {
|
|
166
143
|
throw new Error("unsupported compression method: ".concat(opts.compression));
|
|
167
144
|
}
|
|
@@ -183,21 +160,16 @@ function buildFields(schema, rLevelParentMax, dLevelParentMax, path) {
|
|
|
183
160
|
dLevelMax: dLevelMax
|
|
184
161
|
};
|
|
185
162
|
}
|
|
186
|
-
|
|
187
163
|
return fieldList;
|
|
188
164
|
}
|
|
189
|
-
|
|
190
165
|
function listFields(fields) {
|
|
191
166
|
var list = [];
|
|
192
|
-
|
|
193
167
|
for (var k in fields) {
|
|
194
168
|
list.push(fields[k]);
|
|
195
|
-
|
|
196
169
|
if (fields[k].isNested) {
|
|
197
170
|
list = list.concat(listFields(fields[k].fields));
|
|
198
171
|
}
|
|
199
172
|
}
|
|
200
|
-
|
|
201
173
|
return list;
|
|
202
174
|
}
|
|
203
175
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/schema/schema.ts"],"names":["ParquetSchema","schema","fields","buildFields","fieldList","listFields","path","split","slice","n","length","shift","branch","push","record","buffer","type","setCompress","name","node","compression","rLevelParentMax","dLevelParentMax","opts","required","optional","repeated","Boolean","rLevelMax","dLevelMax","repetitionType","cpath","concat","key","join","isNested","fieldCount","Object","keys","typeDef","PARQUET_LOGICAL_TYPES","Error","encoding","PARQUET_CODECS","PARQUET_COMPRESSION_METHODS","primitiveType","originalType","typeLength","presision","scale","list","k"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {PARQUET_CODECS} from '../codecs';\nimport {PARQUET_COMPRESSION_METHODS} from '../compression';\nimport {\n FieldDefinition,\n ParquetBuffer,\n ParquetCompression,\n ParquetField,\n ParquetRecord,\n RepetitionType,\n SchemaDefinition\n} from './declare';\nimport {materializeRecords, shredBuffer, shredRecord} from './shred';\nimport {PARQUET_LOGICAL_TYPES} from './types';\n\n/**\n * A parquet file schema\n */\nexport class ParquetSchema {\n public schema: Record<string, FieldDefinition>;\n public fields: Record<string, ParquetField>;\n public fieldList: ParquetField[];\n\n /**\n * Create a new schema from a JSON schema definition\n */\n constructor(schema: SchemaDefinition) {\n this.schema = schema;\n this.fields = buildFields(schema, 0, 0, []);\n this.fieldList = listFields(this.fields);\n }\n\n /**\n * Retrieve a field definition\n */\n findField(path: string | string[]): ParquetField {\n if (typeof path === 'string') {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.split(',');\n } else {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.slice(0); // clone array\n }\n\n let n = this.fields;\n for (; path.length > 1; path.shift()) {\n n = n[path[0]].fields as Record<string, ParquetField>;\n }\n\n return n[path[0]];\n }\n\n /**\n * Retrieve a field definition and all the field's ancestors\n */\n findFieldBranch(path: string | string[]): ParquetField[] {\n if (typeof path === 'string') {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.split(',');\n }\n const branch: ParquetField[] = [];\n let n = this.fields;\n for (; path.length > 0; path.shift()) {\n branch.push(n[path[0]]);\n if (path.length > 1) {\n n = n[path[0]].fields as Record<string, ParquetField>;\n }\n }\n return branch;\n }\n\n shredRecord(record: ParquetRecord, buffer: ParquetBuffer): void {\n shredRecord(this, record, buffer);\n }\n\n materializeRecords(buffer: ParquetBuffer): ParquetRecord[] {\n return materializeRecords(this, buffer);\n }\n\n compress(type: ParquetCompression): this {\n setCompress(this.schema, type);\n setCompress(this.fields, type);\n return this;\n }\n\n buffer(): ParquetBuffer {\n return shredBuffer(this);\n }\n}\n\nfunction setCompress(schema: any, type: ParquetCompression) {\n for (const name in schema) {\n const node = schema[name];\n if (node.fields) {\n setCompress(node.fields, type);\n } else {\n node.compression = type;\n }\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction buildFields(\n schema: SchemaDefinition,\n rLevelParentMax: number,\n dLevelParentMax: number,\n path: string[]\n): Record<string, ParquetField> {\n const fieldList: Record<string, ParquetField> = {};\n\n for (const name in schema) {\n const opts = schema[name];\n\n /* field repetition type */\n const required = !opts.optional;\n const repeated = Boolean(opts.repeated);\n let rLevelMax = rLevelParentMax;\n let dLevelMax = dLevelParentMax;\n\n let repetitionType: RepetitionType = 'REQUIRED';\n if (!required) {\n repetitionType = 'OPTIONAL';\n dLevelMax++;\n }\n if (repeated) {\n repetitionType = 'REPEATED';\n rLevelMax++;\n if (required) dLevelMax++;\n }\n\n /* nested field */\n if (opts.fields) {\n const cpath = path.concat([name]);\n fieldList[name] = {\n name,\n path: cpath,\n key: cpath.join(),\n repetitionType,\n rLevelMax,\n dLevelMax,\n isNested: true,\n fieldCount: Object.keys(opts.fields).length,\n fields: buildFields(opts.fields, rLevelMax, dLevelMax, cpath)\n };\n continue; // eslint-disable-line no-continue\n }\n\n const typeDef: any = PARQUET_LOGICAL_TYPES[opts.type!];\n if (!typeDef) {\n throw new Error(`invalid parquet type: ${opts.type}`);\n }\n\n opts.encoding = opts.encoding || 'PLAIN';\n if (!(opts.encoding in PARQUET_CODECS)) {\n throw new Error(`unsupported parquet encoding: ${opts.encoding}`);\n }\n\n opts.compression = opts.compression || 'UNCOMPRESSED';\n if (!(opts.compression in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`unsupported compression method: ${opts.compression}`);\n }\n\n /* add to schema */\n const cpath = path.concat([name]);\n fieldList[name] = {\n name,\n primitiveType: typeDef.primitiveType,\n originalType: typeDef.originalType,\n path: cpath,\n key: cpath.join(),\n repetitionType,\n encoding: opts.encoding,\n compression: opts.compression,\n typeLength: opts.typeLength || typeDef.typeLength,\n presision: opts.presision,\n scale: opts.scale,\n rLevelMax,\n dLevelMax\n };\n }\n return fieldList;\n}\n\nfunction listFields(fields: Record<string, ParquetField>): ParquetField[] {\n let list: ParquetField[] = [];\n for (const k in fields) {\n list.push(fields[k]);\n if (fields[k].isNested) {\n list = list.concat(listFields(fields[k].fields!));\n }\n }\n return list;\n}\n"],"file":"schema.js"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":["ParquetSchema","schema","fields","buildFields","fieldList","listFields","path","split","slice","n","length","shift","branch","push","record","buffer","shredRecord","materializeRecords","type","setCompress","shredBuffer","name","node","compression","rLevelParentMax","dLevelParentMax","opts","required","optional","repeated","Boolean","rLevelMax","dLevelMax","repetitionType","cpath","concat","key","join","isNested","fieldCount","Object","keys","typeDef","PARQUET_LOGICAL_TYPES","Error","encoding","PARQUET_CODECS","PARQUET_COMPRESSION_METHODS","primitiveType","originalType","typeLength","presision","scale","list","k"],"sources":["../../../../src/parquetjs/schema/schema.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {PARQUET_CODECS} from '../codecs';\nimport {PARQUET_COMPRESSION_METHODS} from '../compression';\nimport {\n FieldDefinition,\n ParquetBuffer,\n ParquetCompression,\n ParquetField,\n ParquetRecord,\n RepetitionType,\n SchemaDefinition\n} from './declare';\nimport {materializeRecords, shredBuffer, shredRecord} from './shred';\nimport {PARQUET_LOGICAL_TYPES} from './types';\n\n/**\n * A parquet file schema\n */\nexport class ParquetSchema {\n public schema: Record<string, FieldDefinition>;\n public fields: Record<string, ParquetField>;\n public fieldList: ParquetField[];\n\n /**\n * Create a new schema from a JSON schema definition\n */\n constructor(schema: SchemaDefinition) {\n this.schema = schema;\n this.fields = buildFields(schema, 0, 0, []);\n this.fieldList = listFields(this.fields);\n }\n\n /**\n * Retrieve a field definition\n */\n findField(path: string | string[]): ParquetField {\n if (typeof path === 'string') {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.split(',');\n } else {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.slice(0); // clone array\n }\n\n let n = this.fields;\n for (; path.length > 1; path.shift()) {\n n = n[path[0]].fields as Record<string, ParquetField>;\n }\n\n return n[path[0]];\n }\n\n /**\n * Retrieve a field definition and all the field's ancestors\n */\n findFieldBranch(path: string | string[]): ParquetField[] {\n if (typeof path === 'string') {\n // tslint:disable-next-line:no-parameter-reassignment\n path = path.split(',');\n }\n const branch: ParquetField[] = [];\n let n = this.fields;\n for (; path.length > 0; path.shift()) {\n branch.push(n[path[0]]);\n if (path.length > 1) {\n n = n[path[0]].fields as Record<string, ParquetField>;\n }\n }\n return branch;\n }\n\n shredRecord(record: ParquetRecord, buffer: ParquetBuffer): void {\n shredRecord(this, record, buffer);\n }\n\n materializeRecords(buffer: ParquetBuffer): ParquetRecord[] {\n return materializeRecords(this, buffer);\n }\n\n compress(type: ParquetCompression): this {\n setCompress(this.schema, type);\n setCompress(this.fields, type);\n return this;\n }\n\n buffer(): ParquetBuffer {\n return shredBuffer(this);\n }\n}\n\nfunction setCompress(schema: any, type: ParquetCompression) {\n for (const name in schema) {\n const node = schema[name];\n if (node.fields) {\n setCompress(node.fields, type);\n } else {\n node.compression = type;\n }\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction buildFields(\n schema: SchemaDefinition,\n rLevelParentMax: number,\n dLevelParentMax: number,\n path: string[]\n): Record<string, ParquetField> {\n const fieldList: Record<string, ParquetField> = {};\n\n for (const name in schema) {\n const opts = schema[name];\n\n /* field repetition type */\n const required = !opts.optional;\n const repeated = Boolean(opts.repeated);\n let rLevelMax = rLevelParentMax;\n let dLevelMax = dLevelParentMax;\n\n let repetitionType: RepetitionType = 'REQUIRED';\n if (!required) {\n repetitionType = 'OPTIONAL';\n dLevelMax++;\n }\n if (repeated) {\n repetitionType = 'REPEATED';\n rLevelMax++;\n if (required) dLevelMax++;\n }\n\n /* nested field */\n if (opts.fields) {\n const cpath = path.concat([name]);\n fieldList[name] = {\n name,\n path: cpath,\n key: cpath.join(),\n repetitionType,\n rLevelMax,\n dLevelMax,\n isNested: true,\n fieldCount: Object.keys(opts.fields).length,\n fields: buildFields(opts.fields, rLevelMax, dLevelMax, cpath)\n };\n continue; // eslint-disable-line no-continue\n }\n\n const typeDef: any = PARQUET_LOGICAL_TYPES[opts.type!];\n if (!typeDef) {\n throw new Error(`invalid parquet type: ${opts.type}`);\n }\n\n opts.encoding = opts.encoding || 'PLAIN';\n if (!(opts.encoding in PARQUET_CODECS)) {\n throw new Error(`unsupported parquet encoding: ${opts.encoding}`);\n }\n\n opts.compression = opts.compression || 'UNCOMPRESSED';\n if (!(opts.compression in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`unsupported compression method: ${opts.compression}`);\n }\n\n /* add to schema */\n const cpath = path.concat([name]);\n fieldList[name] = {\n name,\n primitiveType: typeDef.primitiveType,\n originalType: typeDef.originalType,\n path: cpath,\n key: cpath.join(),\n repetitionType,\n encoding: opts.encoding,\n compression: opts.compression,\n typeLength: opts.typeLength || typeDef.typeLength,\n presision: opts.presision,\n scale: opts.scale,\n rLevelMax,\n dLevelMax\n };\n }\n return fieldList;\n}\n\nfunction listFields(fields: Record<string, ParquetField>): ParquetField[] {\n let list: ParquetField[] = [];\n for (const k in fields) {\n list.push(fields[k]);\n if (fields[k].isNested) {\n list = list.concat(listFields(fields[k].fields!));\n }\n }\n return list;\n}\n"],"mappings":"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"}
|