@loaders.gl/parquet 4.4.2 → 5.0.0-alpha.1
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/bundled.d.ts +6 -0
- package/dist/bundled.d.ts.map +1 -0
- package/dist/bundled.js +7 -0
- package/dist/bundled.js.map +1 -0
- package/dist/geoparquet-loader-with-parser.d.ts +34 -0
- package/dist/geoparquet-loader-with-parser.d.ts.map +1 -0
- package/dist/geoparquet-loader-with-parser.js +52 -0
- package/dist/geoparquet-loader-with-parser.js.map +1 -0
- package/dist/geoparquet-loader.d.ts +61 -0
- package/dist/geoparquet-loader.d.ts.map +1 -0
- package/dist/geoparquet-loader.js +30 -0
- package/dist/geoparquet-loader.js.map +1 -0
- package/dist/index.cjs +5879 -5643
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/constants.d.ts +1 -1
- package/dist/lib/constants.js +2 -2
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/encoders/encode-arrow-to-parquet.d.ts +2 -2
- package/dist/lib/encoders/encode-arrow-to-parquet.d.ts.map +1 -1
- package/dist/lib/encoders/encode-arrow-to-parquet.js +3 -10
- package/dist/lib/encoders/encode-arrow-to-parquet.js.map +1 -1
- package/dist/lib/encoders/encode-table-to-parquet-js.d.ts +5 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.d.ts.map +1 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.js +149 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.js.map +1 -0
- package/dist/lib/geo/geospatial-metadata.d.ts +67 -0
- package/dist/lib/geo/geospatial-metadata.d.ts.map +1 -0
- package/dist/lib/geo/geospatial-metadata.js +357 -0
- package/dist/lib/geo/geospatial-metadata.js.map +1 -0
- package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.js +3 -1
- package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
- package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts +4 -4
- package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts.map +1 -1
- package/dist/lib/parsers/parse-geoparquet-to-geojson.js +19 -6
- package/dist/lib/parsers/parse-geoparquet-to-geojson.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-tables.d.ts +50 -0
- package/dist/lib/parsers/parse-parquet-tables.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-tables.js +101 -0
- package/dist/lib/parsers/parse-parquet-tables.js.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts +6 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js +23 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow.d.ts +7 -7
- package/dist/lib/parsers/parse-parquet-to-arrow.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow.js +45 -32
- package/dist/lib/parsers/parse-parquet-to-arrow.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts +3 -3
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js +1 -4
- package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.d.ts +3 -3
- package/dist/lib/parsers/parse-parquet-to-json.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.js +77 -26
- package/dist/lib/parsers/parse-parquet-to-json.js.map +1 -1
- package/dist/lib/utils/load-wasm.d.ts +2 -2
- package/dist/lib/utils/load-wasm.d.ts.map +1 -1
- package/dist/lib/utils/load-wasm.js +7 -7
- package/dist/lib/utils/load-wasm.js.map +1 -1
- package/dist/lib/utils/make-stream-iterator.js +1 -1
- package/dist/lib/utils/make-stream-iterator.js.map +1 -1
- package/dist/lib/utils/normalize-parquet-options.d.ts +5 -0
- package/dist/lib/utils/normalize-parquet-options.d.ts.map +1 -0
- package/dist/lib/utils/normalize-parquet-options.js +11 -0
- package/dist/lib/utils/normalize-parquet-options.js.map +1 -0
- package/dist/parquet-format.d.ts +2 -0
- package/dist/parquet-format.d.ts.map +1 -1
- package/dist/parquet-format.js +2 -0
- package/dist/parquet-format.js.map +1 -1
- package/dist/parquet-js-loader.d.ts +57 -0
- package/dist/parquet-js-loader.d.ts.map +1 -0
- package/dist/parquet-js-loader.js +33 -0
- package/dist/parquet-js-loader.js.map +1 -0
- package/dist/parquet-js-writer.d.ts +34 -0
- package/dist/parquet-js-writer.d.ts.map +1 -0
- package/dist/parquet-js-writer.js +28 -0
- package/dist/parquet-js-writer.js.map +1 -0
- package/dist/parquet-loader-options.d.ts +56 -0
- package/dist/parquet-loader-options.d.ts.map +1 -0
- package/dist/parquet-loader-options.js +11 -0
- package/dist/parquet-loader-options.js.map +1 -0
- package/dist/parquet-loader-with-parser.d.ts +33 -0
- package/dist/parquet-loader-with-parser.d.ts.map +1 -0
- package/dist/parquet-loader-with-parser.js +40 -0
- package/dist/parquet-loader-with-parser.js.map +1 -0
- package/dist/parquet-loader.d.ts +62 -0
- package/dist/parquet-loader.d.ts.map +1 -0
- package/dist/parquet-loader.js +53 -0
- package/dist/parquet-loader.js.map +1 -0
- package/dist/parquet-wasm-loader-with-parser.d.ts +40 -0
- package/dist/parquet-wasm-loader-with-parser.d.ts.map +1 -0
- package/dist/parquet-wasm-loader-with-parser.js +68 -0
- package/dist/parquet-wasm-loader-with-parser.js.map +1 -0
- package/dist/parquet-writer.d.ts +10 -0
- package/dist/parquet-writer.d.ts.map +1 -0
- package/dist/parquet-writer.js +29 -0
- package/dist/parquet-writer.js.map +1 -0
- package/dist/parquet_wasm_bg.wasm +0 -0
- package/dist/parquetjs/codecs/declare.d.ts +2 -2
- package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
- package/dist/parquetjs/codecs/dictionary.js +1 -1
- package/dist/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/parquetjs/codecs/plain.d.ts +1 -1
- package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
- package/dist/parquetjs/codecs/plain.js +36 -41
- package/dist/parquetjs/codecs/plain.js.map +1 -1
- package/dist/parquetjs/codecs/rle.d.ts +1 -1
- package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
- package/dist/parquetjs/codecs/rle.js +16 -21
- package/dist/parquetjs/codecs/rle.js.map +1 -1
- package/dist/parquetjs/compression.d.ts +2 -3
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +4 -105
- package/dist/parquetjs/compression.js.map +1 -1
- package/dist/parquetjs/encoder/parquet-encoder.d.ts +4 -4
- package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
- package/dist/parquetjs/encoder/parquet-encoder.js +38 -33
- package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/index.d.ts +0 -1
- package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/index.js +0 -1
- package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/parquetjs/parser/decoders.d.ts +1 -1
- package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
- package/dist/parquetjs/parser/decoders.js +4 -22
- package/dist/parquetjs/parser/decoders.js.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.d.ts +1 -1
- package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.js +9 -9
- package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/parquetjs/schema/declare.d.ts +1 -1
- package/dist/parquetjs/schema/declare.d.ts.map +1 -1
- package/dist/parquetjs/schema/types.d.ts.map +1 -1
- package/dist/parquetjs/schema/types.js +36 -35
- package/dist/parquetjs/schema/types.js.map +1 -1
- package/dist/parquetjs/utils/binary-utils.d.ts +39 -0
- package/dist/parquetjs/utils/binary-utils.d.ts.map +1 -0
- package/dist/parquetjs/utils/binary-utils.js +102 -0
- package/dist/parquetjs/utils/binary-utils.js.map +1 -0
- package/dist/parquetjs/utils/file-utils.d.ts +1 -1
- package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/file-utils.js +3 -3
- package/dist/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/parquetjs/utils/read-utils.d.ts +4 -4
- package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/read-utils.js +12 -17
- package/dist/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts +78 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js +213 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts +78 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.js +276 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.js.map +1 -0
- package/dist/parquetjs/utils/uint8-array-transport.d.ts +25 -0
- package/dist/parquetjs/utils/uint8-array-transport.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-transport.js +62 -0
- package/dist/parquetjs/utils/uint8-array-transport.js.map +1 -0
- package/dist/unbundled.d.ts +6 -0
- package/dist/unbundled.d.ts.map +1 -0
- package/dist/unbundled.js +7 -0
- package/dist/unbundled.js.map +1 -0
- package/package.json +21 -25
- package/src/bundled.ts +9 -0
- package/src/geoparquet-loader-with-parser.ts +95 -0
- package/src/geoparquet-loader.ts +54 -0
- package/src/index.ts +7 -25
- package/src/lib/constants.ts +1 -1
- package/src/lib/encoders/encode-arrow-to-parquet.ts +9 -15
- package/src/lib/encoders/encode-table-to-parquet-js.ts +199 -0
- package/src/lib/geo/geospatial-metadata.ts +507 -0
- package/src/lib/parsers/get-parquet-schema.ts +3 -1
- package/src/lib/parsers/parse-geoparquet-to-geojson.ts +27 -14
- package/src/lib/parsers/parse-parquet-tables.ts +137 -0
- package/src/lib/parsers/parse-parquet-to-arrow-js.ts +36 -0
- package/src/lib/parsers/parse-parquet-to-arrow.ts +63 -36
- package/src/lib/parsers/parse-parquet-to-columns.ts +6 -7
- package/src/lib/parsers/parse-parquet-to-json.ts +101 -33
- package/src/lib/utils/load-wasm.ts +16 -9
- package/src/lib/utils/make-stream-iterator.ts +1 -1
- package/src/lib/utils/normalize-parquet-options.ts +14 -0
- package/src/parquet-format.ts +2 -0
- package/src/parquet-js-loader.ts +43 -0
- package/src/parquet-js-writer.ts +52 -0
- package/src/parquet-loader-options.ts +63 -0
- package/src/parquet-loader-with-parser.ts +68 -0
- package/src/parquet-loader.ts +79 -0
- package/src/parquet-wasm-loader-with-parser.ts +115 -0
- package/src/parquet-writer.ts +44 -0
- package/src/parquetjs/codecs/declare.ts +2 -2
- package/src/parquetjs/codecs/dictionary.ts +1 -1
- package/src/parquetjs/codecs/plain.ts +67 -53
- package/src/parquetjs/codecs/rle.ts +20 -26
- package/src/parquetjs/compression.ts +7 -114
- package/src/parquetjs/encoder/parquet-encoder.ts +49 -43
- package/src/parquetjs/parquet-thrift/ColumnIndex.ts +1 -1
- package/src/parquetjs/parquet-thrift/index.ts +0 -2
- package/src/parquetjs/parser/decoders.ts +5 -23
- package/src/parquetjs/parser/parquet-reader.ts +10 -12
- package/src/parquetjs/schema/declare.ts +1 -1
- package/src/parquetjs/schema/types.ts +48 -40
- package/src/parquetjs/utils/binary-utils.ts +127 -0
- package/src/parquetjs/utils/file-utils.ts +4 -4
- package/src/parquetjs/utils/read-utils.ts +19 -34
- package/src/parquetjs/utils/uint8-array-compact-protocol-writer.ts +254 -0
- package/src/parquetjs/utils/uint8-array-compact-protocol.ts +322 -0
- package/src/parquetjs/utils/uint8-array-transport.ts +79 -0
- package/src/unbundled.ts +9 -0
- package/dist/parquet-arrow-loader.d.ts +0 -43
- package/dist/parquet-arrow-loader.d.ts.map +0 -1
- package/dist/parquet-arrow-loader.js +0 -49
- package/dist/parquet-arrow-loader.js.map +0 -1
- package/dist/parquet-arrow-writer.d.ts +0 -9
- package/dist/parquet-arrow-writer.d.ts.map +0 -1
- package/dist/parquet-arrow-writer.js +0 -23
- package/dist/parquet-arrow-writer.js.map +0 -1
- package/dist/parquet-json-loader.d.ts +0 -148
- package/dist/parquet-json-loader.d.ts.map +0 -1
- package/dist/parquet-json-loader.js +0 -106
- package/dist/parquet-json-loader.js.map +0 -1
- package/dist/parquet-json-writer.d.ts +0 -19
- package/dist/parquet-json-writer.d.ts.map +0 -1
- package/dist/parquet-json-writer.js +0 -20
- package/dist/parquet-json-writer.js.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts +0 -3
- package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.browser.js +0 -12
- package/dist/polyfills/buffer/buffer-polyfill.browser.js.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.d.ts +0 -3
- package/dist/polyfills/buffer/buffer-polyfill.node.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.js +0 -17
- package/dist/polyfills/buffer/buffer-polyfill.node.js.map +0 -1
- package/dist/polyfills/buffer/buffer.d.ts +0 -222
- package/dist/polyfills/buffer/buffer.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer.js +0 -1868
- package/dist/polyfills/buffer/buffer.js.map +0 -1
- package/dist/polyfills/buffer/index.d.ts +0 -4
- package/dist/polyfills/buffer/index.d.ts.map +0 -1
- package/dist/polyfills/buffer/index.js +0 -9
- package/dist/polyfills/buffer/index.js.map +0 -1
- package/dist/polyfills/buffer/install-buffer-polyfill.d.ts +0 -2
- package/dist/polyfills/buffer/install-buffer-polyfill.d.ts.map +0 -1
- package/dist/polyfills/buffer/install-buffer-polyfill.js +0 -10
- package/dist/polyfills/buffer/install-buffer-polyfill.js.map +0 -1
- package/dist/workers/parquet-json-worker.d.ts +0 -2
- package/dist/workers/parquet-json-worker.d.ts.map +0 -1
- package/dist/workers/parquet-json-worker.js +0 -7
- package/dist/workers/parquet-json-worker.js.map +0 -1
- package/src/parquet-arrow-loader.ts +0 -74
- package/src/parquet-arrow-writer.ts +0 -33
- package/src/parquet-json-loader.ts +0 -160
- package/src/parquet-json-writer.ts +0 -27
- package/src/parquetjs/modules.d.ts +0 -25
- package/src/polyfills/buffer/buffer-polyfill.browser.ts +0 -14
- package/src/polyfills/buffer/buffer-polyfill.node.ts +0 -19
- package/src/polyfills/buffer/buffer.ts +0 -2205
- package/src/polyfills/buffer/index.ts +0 -11
- package/src/polyfills/buffer/install-buffer-polyfill.ts +0 -12
- package/src/workers/parquet-json-worker.ts +0 -8
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { convertTable } from '@loaders.gl/schema-utils';
|
|
5
|
+
import { normalizeArrowTableGeoMetadata } from "../geo/geospatial-metadata.js";
|
|
6
|
+
import { parseParquetFile, parseParquetFileInBatches } from "./parse-parquet-to-json.js";
|
|
7
|
+
export async function parseParquetFileToArrowWithJs(file, options) {
|
|
8
|
+
const objectRowTable = await parseParquetFile(file, options);
|
|
9
|
+
return normalizeArrowTableGeoMetadata(convertTable(objectRowTable, 'arrow-table'));
|
|
10
|
+
}
|
|
11
|
+
export async function* parseParquetFileToArrowInBatchesWithJs(file, options) {
|
|
12
|
+
for await (const batch of parseParquetFileInBatches(file, options)) {
|
|
13
|
+
const arrowTable = normalizeArrowTableGeoMetadata(convertTable(batch, 'arrow-table'));
|
|
14
|
+
yield {
|
|
15
|
+
batchType: batch.batchType,
|
|
16
|
+
shape: arrowTable.shape,
|
|
17
|
+
schema: arrowTable.schema,
|
|
18
|
+
data: arrowTable.data,
|
|
19
|
+
length: batch.length
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=parse-parquet-to-arrow-js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-arrow-js.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow-js.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAC,8BAA8B,EAAC,sCAAmC;AAC1E,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,mCAAgC;AAEpF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAkB,EAClB,OAA8B;IAE9B,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,8BAA8B,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sCAAsC,CAC3D,IAAkB,EAClB,OAA8B;IAE9B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,8BAA8B,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAEtF,MAAM;YACJ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { ArrowTable, ArrowTableBatch } from '@loaders.gl/schema';
|
|
3
|
-
import type * as parquetWasm from 'parquet-wasm';
|
|
4
|
-
|
|
5
|
-
wasmUrl
|
|
6
|
-
}
|
|
7
|
-
export declare function
|
|
8
|
-
|
|
9
|
-
}
|
|
3
|
+
import type * as parquetWasm from 'parquet-wasm/esm/parquet_wasm.js';
|
|
4
|
+
type ParquetWasmReaderOptions = parquetWasm.ReaderOptions & {
|
|
5
|
+
wasmUrl?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function parseParquetFileToArrow(file: ReadableFile, options?: ParquetWasmReaderOptions): Promise<ArrowTable>;
|
|
8
|
+
export declare function parseParquetFileToArrowInBatches(file: ReadableFile, options?: ParquetWasmReaderOptions): AsyncIterable<ArrowTableBatch>;
|
|
9
|
+
export {};
|
|
10
10
|
//# sourceMappingURL=parse-parquet-to-arrow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-arrow.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-arrow.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAS,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,KAAK,WAAW,MAAM,kCAAkC,CAAC;AAUrE,KAAK,wBAAwB,GAAG,WAAW,CAAC,aAAa,GAAG;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAE/E,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED,wBAAuB,gCAAgC,CACrD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CAAC,eAAe,CAAC,CAgChC"}
|
|
@@ -1,52 +1,65 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { convertArrowToSchema } from '@loaders.gl/schema-utils';
|
|
5
4
|
import * as arrow from 'apache-arrow';
|
|
5
|
+
import { normalizeArrowTableGeoMetadata, getParquetFileMetadataMap } from "../geo/geospatial-metadata.js";
|
|
6
6
|
import { loadWasm } from "../utils/load-wasm.js";
|
|
7
7
|
import { makeStreamIterator } from "../utils/make-stream-iterator.js";
|
|
8
8
|
export async function parseParquetFileToArrow(file, options) {
|
|
9
9
|
const wasmUrl = options?.wasmUrl;
|
|
10
|
+
const readerOptions = getReaderOptions(options);
|
|
10
11
|
const wasm = await loadWasm(wasmUrl);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const parquetFile = await createParquetFile(file, wasm);
|
|
13
|
+
try {
|
|
14
|
+
const wasmTable = await parquetFile.read(readerOptions);
|
|
15
|
+
const ipcStream = wasmTable.intoIPCStream();
|
|
16
|
+
const arrowTable = arrow.tableFromIPC(ipcStream);
|
|
17
|
+
return normalizeArrowTableGeoMetadata({
|
|
18
|
+
shape: 'arrow-table',
|
|
19
|
+
data: arrowTable
|
|
20
|
+
}, getParquetFileMetadataMap(parquetFile.metadata()));
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
parquetFile
|
|
22
|
+
finally {
|
|
23
|
+
parquetFile.free();
|
|
18
24
|
}
|
|
19
|
-
const wasmTable = await parquetFile.read(options);
|
|
20
|
-
const ipcStream = wasmTable.intoIPCStream();
|
|
21
|
-
const arrowTable = arrow.tableFromIPC(ipcStream);
|
|
22
|
-
return {
|
|
23
|
-
shape: 'arrow-table',
|
|
24
|
-
schema: convertArrowToSchema(arrowTable.schema),
|
|
25
|
-
data: arrowTable
|
|
26
|
-
};
|
|
27
25
|
}
|
|
28
26
|
export async function* parseParquetFileToArrowInBatches(file, options) {
|
|
29
27
|
const wasmUrl = options?.wasmUrl;
|
|
28
|
+
const readerOptions = getReaderOptions(options);
|
|
30
29
|
const wasm = await loadWasm(wasmUrl);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
const parquetFile = await createParquetFile(file, wasm);
|
|
31
|
+
try {
|
|
32
|
+
const stream = await parquetFile.stream(readerOptions);
|
|
33
|
+
const schemaMetadata = getParquetFileMetadataMap(parquetFile.metadata());
|
|
34
|
+
let schema;
|
|
35
|
+
for await (const wasmRecordBatch of makeStreamIterator(stream)) {
|
|
36
|
+
const normalizedArrowTable = normalizeArrowTableGeoMetadata({
|
|
37
|
+
shape: 'arrow-table',
|
|
38
|
+
data: arrow.tableFromIPC(wasmRecordBatch.intoIPCStream())
|
|
39
|
+
}, schemaMetadata);
|
|
40
|
+
schema ||= normalizedArrowTable.schema;
|
|
41
|
+
yield {
|
|
42
|
+
batchType: 'data',
|
|
43
|
+
shape: 'arrow-table',
|
|
44
|
+
schema,
|
|
45
|
+
data: normalizedArrowTable.data,
|
|
46
|
+
length: normalizedArrowTable.data.numRows
|
|
47
|
+
};
|
|
48
|
+
}
|
|
35
49
|
}
|
|
36
|
-
|
|
37
|
-
parquetFile
|
|
50
|
+
finally {
|
|
51
|
+
parquetFile.free();
|
|
38
52
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
batchType: 'data',
|
|
45
|
-
shape: 'arrow-table',
|
|
46
|
-
schema,
|
|
47
|
-
data: new arrow.Table(recordBatch),
|
|
48
|
-
length: recordBatch.numRows
|
|
49
|
-
};
|
|
53
|
+
}
|
|
54
|
+
async function createParquetFile(file, wasm) {
|
|
55
|
+
if (file.handle instanceof Blob) {
|
|
56
|
+
// Works on Blobs: https://kylebarron.dev/parquet-wasm/classes/esm_parquet_wasm.ParquetFile.html#fromFile
|
|
57
|
+
return await wasm.ParquetFile.fromFile(file.handle);
|
|
50
58
|
}
|
|
59
|
+
return await wasm.ParquetFile.fromUrl(file.url);
|
|
60
|
+
}
|
|
61
|
+
function getReaderOptions(options) {
|
|
62
|
+
const { wasmUrl, ...readerOptions } = options || {};
|
|
63
|
+
return readerOptions;
|
|
51
64
|
}
|
|
52
65
|
//# sourceMappingURL=parse-parquet-to-arrow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-arrow.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-arrow.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
|
|
2
2
|
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ParquetLoaderOptions } from "../../parquet-loader.js";
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated - Use parseParquetToArrow
|
|
6
6
|
*/
|
|
7
|
-
export declare function parseParquetFileInColumns(file: ReadableFile, options?:
|
|
7
|
+
export declare function parseParquetFileInColumns(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ColumnarTable>;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated
|
|
10
10
|
*/
|
|
11
|
-
export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?:
|
|
11
|
+
export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
|
|
12
12
|
//# sourceMappingURL=parse-parquet-to-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,gCAA6B;AAQ/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAiBnC"}
|
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
|
|
5
5
|
import { materializeColumns } from "../../parquetjs/schema/shred.js";
|
|
6
6
|
import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
|
|
7
|
-
import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
8
7
|
import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
9
8
|
/**
|
|
10
9
|
* @deprecated - Use parseParquetToArrow
|
|
11
10
|
*/
|
|
12
11
|
export async function parseParquetFileInColumns(file, options) {
|
|
13
|
-
installBufferPolyfill();
|
|
14
12
|
await preloadCompressions(options);
|
|
15
13
|
for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
|
|
16
14
|
return {
|
|
@@ -25,14 +23,13 @@ export async function parseParquetFileInColumns(file, options) {
|
|
|
25
23
|
* @deprecated
|
|
26
24
|
*/
|
|
27
25
|
export async function* parseParquetFileInColumnarBatches(file, options) {
|
|
28
|
-
installBufferPolyfill();
|
|
29
26
|
await preloadCompressions(options);
|
|
30
27
|
const reader = new ParquetReader(file);
|
|
31
28
|
// Extract schema and geo metadata
|
|
32
29
|
const schema = await getSchemaFromParquetReader(reader);
|
|
33
30
|
const parquetSchema = await reader.getSchema();
|
|
34
31
|
// Iterate over row batches
|
|
35
|
-
const rowGroups = reader.rowGroupIterator(options?.parquet);
|
|
32
|
+
const rowGroups = reader.rowGroupIterator(options?.parquet?.columns?.length ? { columnList: options.parquet.columns } : undefined);
|
|
36
33
|
for await (const rowGroup of rowGroups) {
|
|
37
34
|
yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);
|
|
38
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-columns.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,aAAa,EAAC,iDAA8C;AAGpE,OAAO,EAAC,kBAAkB,EAAC,wCAAqC;AAChE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-columns.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,aAAa,EAAC,iDAA8C;AAGpE,OAAO,EAAC,kBAAkB,EAAC,wCAAqC;AAChE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,mBAAmB,EAAC,uCAAoC;AAEhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAkB,EAClB,OAA8B;IAE9B,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,iCAAiC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,IAAkB,EAClB,OAA8B;IAE9B,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAE/C,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CACtF,CAAC;IACF,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAyB,EACzB,aAA4B,EAC5B,MAAc;IAEd,kEAAkE;IAClE,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO;QACL,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,MAAM;QACjB,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,QAAQ,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ParquetLoaderOptions } from "../../parquet-loader-options.js";
|
|
4
4
|
/**
|
|
5
5
|
* * Parse a parquet file using parquetjs
|
|
6
6
|
* @param file
|
|
7
7
|
* @param options
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare function parseParquetFile(file: ReadableFile, options?:
|
|
10
|
+
export declare function parseParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable>;
|
|
11
11
|
/**
|
|
12
12
|
* Parse a parquet file in batches using parquetjs
|
|
13
13
|
* @param file
|
|
14
14
|
* @param options
|
|
15
15
|
*/
|
|
16
|
-
export declare function parseParquetFileInBatches(file: ReadableFile, options?:
|
|
16
|
+
export declare function parseParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch>;
|
|
17
17
|
//# sourceMappingURL=parse-parquet-to-json.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAS,MAAM,oBAAoB,CAAC;AAEpF,OAAO,KAAK,EAAC,oBAAoB,EAAC,wCAAqC;AAMvE;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2CzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CAsDpC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { default as log } from '@probe.gl/log';
|
|
5
5
|
import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
|
|
6
6
|
import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
|
|
7
|
-
import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
8
7
|
import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
9
8
|
/**
|
|
10
9
|
* * Parse a parquet file using parquetjs
|
|
@@ -13,32 +12,37 @@ import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
|
13
12
|
* @returns
|
|
14
13
|
*/
|
|
15
14
|
export async function parseParquetFile(file, options) {
|
|
16
|
-
installBufferPolyfill();
|
|
17
15
|
await preloadCompressions(options);
|
|
18
16
|
const reader = new ParquetReader(file, {
|
|
19
17
|
preserveBinary: options?.parquet?.preserveBinary
|
|
20
18
|
});
|
|
21
19
|
const schema = await getSchemaFromParquetReader(reader);
|
|
20
|
+
const projectedSchema = projectSchema(schema, options?.parquet?.columns);
|
|
22
21
|
const rows = [];
|
|
23
|
-
const rowBatches = reader.rowBatchIterator(options
|
|
22
|
+
const rowBatches = reader.rowBatchIterator(getParquetIterationProps(options));
|
|
23
|
+
const rowOffset = options?.parquet?.offset || 0;
|
|
24
|
+
const rowLimit = options?.parquet?.limit;
|
|
25
|
+
let rowsSkipped = 0;
|
|
24
26
|
for await (const rowBatch of rowBatches) {
|
|
25
|
-
let limitHasReached = false;
|
|
26
|
-
// we have only one input batch so return
|
|
27
27
|
for (const row of rowBatch) {
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
if (rowsSkipped < rowOffset) {
|
|
29
|
+
rowsSkipped++;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (rowLimit !== undefined && rows.length >= rowLimit) {
|
|
33
|
+
log.warn(`Rows number limit has been reached. Only first ${rowLimit} are loaded`)();
|
|
34
|
+
return {
|
|
35
|
+
shape: 'object-row-table',
|
|
36
|
+
schema: projectedSchema,
|
|
37
|
+
data: rows
|
|
38
|
+
};
|
|
31
39
|
}
|
|
32
40
|
rows.push(row);
|
|
33
41
|
}
|
|
34
|
-
if (limitHasReached) {
|
|
35
|
-
log.warn(`Rows number limit has been reached. Only first ${options?.core?.limit} are loaded`)();
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
42
|
}
|
|
39
43
|
const objectRowTable = {
|
|
40
44
|
shape: 'object-row-table',
|
|
41
|
-
schema,
|
|
45
|
+
schema: projectedSchema,
|
|
42
46
|
data: rows
|
|
43
47
|
};
|
|
44
48
|
return objectRowTable;
|
|
@@ -49,25 +53,72 @@ export async function parseParquetFile(file, options) {
|
|
|
49
53
|
* @param options
|
|
50
54
|
*/
|
|
51
55
|
export async function* parseParquetFileInBatches(file, options) {
|
|
52
|
-
installBufferPolyfill();
|
|
53
56
|
await preloadCompressions(options);
|
|
54
57
|
const reader = new ParquetReader(file, {
|
|
55
58
|
preserveBinary: options?.parquet?.preserveBinary
|
|
56
59
|
});
|
|
57
60
|
const schema = await getSchemaFromParquetReader(reader);
|
|
58
|
-
const
|
|
61
|
+
const projectedSchema = projectSchema(schema, options?.parquet?.columns);
|
|
62
|
+
const rowBatches = reader.rowBatchIterator(getParquetIterationProps(options));
|
|
63
|
+
const rowOffset = options?.parquet?.offset || 0;
|
|
64
|
+
const rowLimit = options?.parquet?.limit;
|
|
65
|
+
const outputBatchSize = options?.parquet?.batchSize;
|
|
66
|
+
let rowsSkipped = 0;
|
|
67
|
+
let rowsYielded = 0;
|
|
68
|
+
let reachedLimit = false;
|
|
59
69
|
for await (const rows of rowBatches) {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
const nextRows = [];
|
|
71
|
+
for (const row of rows) {
|
|
72
|
+
if (rowsSkipped < rowOffset) {
|
|
73
|
+
rowsSkipped++;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (rowLimit !== undefined && rowsYielded >= rowLimit) {
|
|
77
|
+
reachedLimit = true;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
nextRows.push(row);
|
|
81
|
+
rowsYielded++;
|
|
82
|
+
}
|
|
83
|
+
if (nextRows.length === 0) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (!outputBatchSize || outputBatchSize <= 0) {
|
|
87
|
+
yield makeObjectRowBatch(projectedSchema, nextRows);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
for (let rowIndex = 0; rowIndex < nextRows.length; rowIndex += outputBatchSize) {
|
|
91
|
+
yield makeObjectRowBatch(projectedSchema, nextRows.slice(rowIndex, rowIndex + outputBatchSize));
|
|
92
|
+
}
|
|
93
|
+
if (reachedLimit) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
71
96
|
}
|
|
72
97
|
}
|
|
98
|
+
function getParquetIterationProps(options) {
|
|
99
|
+
const columnList = options?.parquet?.columns;
|
|
100
|
+
return columnList?.length ? { columnList } : undefined;
|
|
101
|
+
}
|
|
102
|
+
function makeObjectRowBatch(schema, rows) {
|
|
103
|
+
const objectRowTable = {
|
|
104
|
+
shape: 'object-row-table',
|
|
105
|
+
schema,
|
|
106
|
+
data: rows
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
batchType: 'data',
|
|
110
|
+
schema,
|
|
111
|
+
...objectRowTable,
|
|
112
|
+
length: rows.length
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function projectSchema(schema, columns) {
|
|
116
|
+
if (!columns?.length) {
|
|
117
|
+
return schema;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
...schema,
|
|
121
|
+
fields: schema.fields.filter(field => columns.includes(field.name))
|
|
122
|
+
};
|
|
123
|
+
}
|
|
73
124
|
//# sourceMappingURL=parse-parquet-to-json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-json.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,eAAe,CAAC;AAM7C,OAAO,EAAC,aAAa,EAAC,iDAA8C;AACpE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-json.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
export declare function loadWasm(wasmUrl?:
|
|
1
|
+
import type * as ParquetWasm from 'parquet-wasm/esm/parquet_wasm.js';
|
|
2
|
+
export declare function loadWasm(wasmUrl?: ParquetWasm.InitInput | Promise<ParquetWasm.InitInput>): Promise<typeof ParquetWasm>;
|
|
3
3
|
//# sourceMappingURL=load-wasm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,WAAW,MAAM,kCAAkC,CAAC;AAKrE,wBAAsB,QAAQ,CAC5B,OAAO,GAAE,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAoB,GACjF,OAAO,CAAC,OAAO,WAAW,CAAC,CAS7B"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
// eslint-disable-next-line import/default
|
|
5
|
-
import initWasm from 'parquet-wasm';
|
|
6
|
-
import * as parquetWasm from 'parquet-wasm';
|
|
7
4
|
import { PARQUET_WASM_URL } from "../constants.js";
|
|
8
5
|
let initializePromise;
|
|
9
6
|
export async function loadWasm(wasmUrl = PARQUET_WASM_URL) {
|
|
10
|
-
if (!initializePromise
|
|
7
|
+
if (!initializePromise) {
|
|
11
8
|
if (!wasmUrl) {
|
|
12
9
|
throw new Error('ParquetLoader: No wasmUrl provided');
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
initializePromise = initWasm(wasmUrl);
|
|
11
|
+
initializePromise = loadAndInitializeWasm(wasmUrl);
|
|
16
12
|
}
|
|
17
|
-
await initializePromise;
|
|
13
|
+
return await initializePromise;
|
|
14
|
+
}
|
|
15
|
+
async function loadAndInitializeWasm(wasmUrl) {
|
|
16
|
+
const parquetWasm = await import('parquet-wasm/esm/parquet_wasm.js');
|
|
17
|
+
await parquetWasm.default({ module_or_path: wasmUrl });
|
|
18
18
|
return parquetWasm;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=load-wasm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-wasm.js","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"load-wasm.js","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,IAAI,iBAA8C,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAAkE,gBAAgB;IAElF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,iBAAiB,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAA+D;IAE/D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACrE,MAAM,WAAW,CAAC,OAAO,CAAC,EAAC,cAAc,EAAE,OAAO,EAAC,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -49,7 +49,7 @@ async function* makeBrowserStreamIterator(stream, options) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
catch (
|
|
52
|
+
catch (_error) {
|
|
53
53
|
// TODO - examples makes it look like this should always be called,
|
|
54
54
|
// but that generates exceptions so only call it if we do not reach the end
|
|
55
55
|
reader.releaseLock();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/lib/utils/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoC,EACpC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAA2B,EAAE,OAAO,CAAC;QACjE,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAyB,EACzB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAAkE,CAAC;IAEvE,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/lib/utils/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoC,EACpC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAA2B,EAAE,OAAO,CAAC;QACjE,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAyB,EACzB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAAkE,CAAC;IAEvE,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,mEAAmE;QACnE,2EAA2E;QAC3E,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,sBAAsB,CACpC,MAAgB,EAChB,OAA+B;IAE/B,oEAAoE;IACpE,uCAAuC;IACvC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Merge caller options with default parquet options while preserving top-level option bags. */
|
|
2
|
+
export declare function normalizeParquetOptions<OptionsT extends {
|
|
3
|
+
parquet?: unknown;
|
|
4
|
+
}>(options: OptionsT | undefined, parquetDefaults: Record<string, unknown>): OptionsT;
|
|
5
|
+
//# sourceMappingURL=normalize-parquet-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-parquet-options.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/normalize-parquet-options.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAC,EAC1E,OAAO,EAAE,QAAQ,GAAG,SAAS,EAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,QAAQ,CAKV"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/** Merge caller options with default parquet options while preserving top-level option bags. */
|
|
5
|
+
export function normalizeParquetOptions(options, parquetDefaults) {
|
|
6
|
+
return {
|
|
7
|
+
...options,
|
|
8
|
+
parquet: { ...parquetDefaults, ...options?.parquet }
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=normalize-parquet-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-parquet-options.js","sourceRoot":"","sources":["../../../src/lib/utils/normalize-parquet-options.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,gGAAgG;AAChG,MAAM,UAAU,uBAAuB,CACrC,OAA6B,EAC7B,eAAwC;IAExC,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,EAAC,GAAG,eAAe,EAAE,GAAI,OAAO,EAAE,OAA+C,EAAC;KACrE,CAAC;AAC3B,CAAC"}
|
package/dist/parquet-format.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare const ParquetFormat: {
|
|
2
2
|
readonly name: "Apache Parquet";
|
|
3
3
|
readonly category: "table";
|
|
4
|
+
readonly encoding: "parquet";
|
|
5
|
+
readonly format: "parquet";
|
|
4
6
|
readonly extensions: ["parquet"];
|
|
5
7
|
readonly mimeTypes: ["application/octet-stream"];
|
|
6
8
|
readonly binary: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-format.d.ts","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"parquet-format.d.ts","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;;;;;;CASU,CAAC"}
|
package/dist/parquet-format.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-format.js","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;CACW,CAAC"}
|
|
1
|
+
{"version":3,"file":"parquet-format.js","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;CACW,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
|
|
2
|
+
/** Preloads the parser-bearing parquetjs loader implementation. */
|
|
3
|
+
declare function preload(): Promise<{
|
|
4
|
+
readonly parse: (arrayBuffer: ArrayBuffer, options?: import("./parquet-loader-options").ParquetLoaderOptions) => Promise<ObjectRowTable>;
|
|
5
|
+
readonly parseFile: (file: import("@loaders.gl/loader-utils").ReadableFile, options?: import("./parquet-loader-options").ParquetLoaderOptions) => Promise<ObjectRowTable>;
|
|
6
|
+
readonly parseFileInBatches: (file: import("@loaders.gl/loader-utils").ReadableFile, options?: import("./parquet-loader-options").ParquetLoaderOptions) => AsyncIterable<ObjectRowTableBatch>;
|
|
7
|
+
readonly parseInBatches: (asyncIterator: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options?: import("./parquet-loader-options").ParquetLoaderOptions, _context?: unknown) => AsyncGenerator<ObjectRowTableBatch, void, any>;
|
|
8
|
+
readonly dataType: ObjectRowTable | import("@loaders.gl/schema").ArrowTable;
|
|
9
|
+
readonly batchType: ObjectRowTableBatch | import("@loaders.gl/schema").ArrowTableBatch;
|
|
10
|
+
readonly id: "parquet";
|
|
11
|
+
readonly module: "parquet";
|
|
12
|
+
readonly version: any;
|
|
13
|
+
readonly worker: false;
|
|
14
|
+
readonly options: {
|
|
15
|
+
readonly parquet: {
|
|
16
|
+
readonly backend: "wasm";
|
|
17
|
+
readonly columns: undefined;
|
|
18
|
+
readonly preserveBinary: false;
|
|
19
|
+
readonly shape: "object-row-table";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
readonly name: "Apache Parquet";
|
|
23
|
+
readonly category: "table";
|
|
24
|
+
readonly encoding: "parquet";
|
|
25
|
+
readonly format: "parquet";
|
|
26
|
+
readonly extensions: ["parquet"];
|
|
27
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
28
|
+
readonly binary: true;
|
|
29
|
+
readonly tests: ["PAR1", "PARE"];
|
|
30
|
+
}>;
|
|
31
|
+
/** Metadata-only plain-row Parquet loader backed by the experimental parquetjs implementation. */
|
|
32
|
+
export declare const ParquetJSLoader: {
|
|
33
|
+
readonly dataType: ObjectRowTable;
|
|
34
|
+
readonly batchType: ObjectRowTableBatch;
|
|
35
|
+
readonly id: "parquet-js";
|
|
36
|
+
readonly module: "parquet";
|
|
37
|
+
readonly version: any;
|
|
38
|
+
readonly worker: false;
|
|
39
|
+
readonly options: {
|
|
40
|
+
readonly parquet: {
|
|
41
|
+
backend: "typescript";
|
|
42
|
+
columns: undefined;
|
|
43
|
+
preserveBinary: boolean;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
readonly preload: typeof preload;
|
|
47
|
+
readonly name: "Apache Parquet";
|
|
48
|
+
readonly category: "table";
|
|
49
|
+
readonly encoding: "parquet";
|
|
50
|
+
readonly format: "parquet";
|
|
51
|
+
readonly extensions: ["parquet"];
|
|
52
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
53
|
+
readonly binary: true;
|
|
54
|
+
readonly tests: ["PAR1", "PARE"];
|
|
55
|
+
};
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=parquet-js-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-js-loader.d.ts","sourceRoot":"","sources":["../src/parquet-js-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAgB5E,mEAAmE;AACnE,iBAAe,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrB;AAED,kGAAkG;AAClG,eAAO,MAAM,eAAe;uBAGG,cAAc;wBACb,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAUqC,CAAC"}
|