@loaders.gl/parquet 4.2.0-alpha.6 → 4.2.0-beta.2
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/index.cjs +35 -11
- package/dist/index.cjs.map +3 -3
- package/dist/lib/constants.js +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js +4 -0
- package/dist/lib/parsers/parse-parquet.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet.js +4 -0
- package/dist/parquet-loader.d.ts +151 -7
- package/dist/parquet-loader.d.ts.map +1 -1
- package/dist/parquet-loader.js +9 -1
- package/dist/parquet-wasm-loader.d.ts +22 -3
- package/dist/parquet-wasm-loader.d.ts.map +1 -1
- package/dist/parquet-wasm-loader.js +2 -0
- package/dist/parquet-wasm-writer.d.ts +1 -3
- package/dist/parquet-wasm-writer.d.ts.map +1 -1
- package/dist/parquet-writer.d.ts +15 -3
- package/dist/parquet-writer.d.ts.map +1 -1
- package/dist/parquet-writer.js +1 -1
- package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
- package/dist/parquetjs/codecs/rle.js +6 -2
- package/dist/parquetjs/compression.d.ts +1 -1
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +3 -1
- package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
- package/dist/parquetjs/parser/decoders.js +4 -1
- package/dist/parquetjs/schema/types.js +1 -0
- package/package.json +9 -9
- package/src/lib/parsers/parse-parquet-to-columns.ts +6 -0
- package/src/lib/parsers/parse-parquet.ts +5 -0
- package/src/parquet-loader.ts +52 -51
- package/src/parquet-wasm-loader.ts +7 -4
- package/src/parquet-wasm-writer.ts +2 -2
- package/src/parquet-writer.ts +2 -2
- package/src/parquetjs/codecs/rle.ts +6 -2
- package/src/parquetjs/compression.ts +6 -2
- package/src/parquetjs/parser/decoders.ts +7 -1
- package/src/parquetjs/schema/types.ts +2 -1
package/dist/lib/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
5
5
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
6
|
-
export const VERSION = typeof "4.2.0-
|
|
6
|
+
export const VERSION = typeof "4.2.0-beta.1" !== 'undefined' ? "4.2.0-beta.1" : 'latest';
|
|
7
7
|
export const PARQUET_WASM_URL = 'https://unpkg.com/parquet-wasm@0.6.0-beta.1/esm/arrow1_bg.wasm';
|
|
8
8
|
/**
|
|
9
9
|
* Parquet File Magic String
|
|
@@ -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,oBAAoB,EAAC,gCAA6B;
|
|
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;AAS/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAgBnC"}
|
|
@@ -5,11 +5,13 @@ 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
7
|
import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
8
|
+
import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
8
9
|
/**
|
|
9
10
|
* @deprecated
|
|
10
11
|
*/
|
|
11
12
|
export async function parseParquetFileInColumns(file, options) {
|
|
12
13
|
installBufferPolyfill();
|
|
14
|
+
await preloadCompressions(options);
|
|
13
15
|
for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
|
|
14
16
|
return {
|
|
15
17
|
shape: 'columnar-table',
|
|
@@ -23,6 +25,8 @@ export async function parseParquetFileInColumns(file, options) {
|
|
|
23
25
|
* @deprecated
|
|
24
26
|
*/
|
|
25
27
|
export async function* parseParquetFileInColumnarBatches(file, options) {
|
|
28
|
+
installBufferPolyfill();
|
|
29
|
+
await preloadCompressions(options);
|
|
26
30
|
const reader = new ParquetReader(file);
|
|
27
31
|
// Extract schema and geo metadata
|
|
28
32
|
const schema = await getSchemaFromParquetReader(reader);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAC,oBAAoB,EAAC,gCAA6B;
|
|
1
|
+
{"version":3,"file":"parse-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAC,oBAAoB,EAAC,gCAA6B;AAO/D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CA0BpC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
|
|
5
5
|
import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
|
|
6
6
|
import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
7
|
+
import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
7
8
|
/**
|
|
8
9
|
* * Parse a parquet file using parquetjs
|
|
9
10
|
* @param file
|
|
@@ -12,6 +13,7 @@ import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
|
12
13
|
*/
|
|
13
14
|
export async function parseParquetFile(file, options) {
|
|
14
15
|
installBufferPolyfill();
|
|
16
|
+
await preloadCompressions(options);
|
|
15
17
|
const reader = new ParquetReader(file, {
|
|
16
18
|
preserveBinary: options?.parquet?.preserveBinary
|
|
17
19
|
});
|
|
@@ -38,6 +40,8 @@ export async function parseParquetFile(file, options) {
|
|
|
38
40
|
* @param options
|
|
39
41
|
*/
|
|
40
42
|
export async function* parseParquetFileInBatches(file, options) {
|
|
43
|
+
installBufferPolyfill();
|
|
44
|
+
await preloadCompressions(options);
|
|
41
45
|
const reader = new ParquetReader(file, {
|
|
42
46
|
preserveBinary: options?.parquet?.preserveBinary
|
|
43
47
|
});
|
package/dist/parquet-loader.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { ObjectRowTable, ObjectRowTableBatch, GeoJSONTable, GeoJSONTableBatch, ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
|
|
3
|
+
import { parseParquetFile, parseParquetFileInBatches } from "./lib/parsers/parse-parquet.js";
|
|
4
|
+
import { parseGeoParquetFile, parseGeoParquetFileInBatches } from "./lib/parsers/parse-geoparquet.js";
|
|
5
|
+
import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./lib/parsers/parse-parquet-to-columns.js";
|
|
3
6
|
export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
|
|
4
7
|
/** Options for the parquet loader */
|
|
5
8
|
export type ParquetLoaderOptions = LoaderOptions & {
|
|
@@ -20,14 +23,155 @@ export type ParquetLoaderOptions = LoaderOptions & {
|
|
|
20
23
|
/**
|
|
21
24
|
* ParquetJS table loader
|
|
22
25
|
*/
|
|
23
|
-
export declare const ParquetWorkerLoader:
|
|
26
|
+
export declare const ParquetWorkerLoader: {
|
|
27
|
+
readonly dataType: ObjectRowTable;
|
|
28
|
+
readonly batchType: ObjectRowTableBatch;
|
|
29
|
+
readonly name: "Apache Parquet";
|
|
30
|
+
readonly id: "parquet";
|
|
31
|
+
readonly module: "parquet";
|
|
32
|
+
readonly version: any;
|
|
33
|
+
readonly worker: true;
|
|
34
|
+
readonly category: "table";
|
|
35
|
+
readonly extensions: ["parquet"];
|
|
36
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
37
|
+
readonly binary: true;
|
|
38
|
+
readonly tests: ["PAR1", "PARE"];
|
|
39
|
+
readonly options: {
|
|
40
|
+
readonly parquet: {
|
|
41
|
+
readonly shape: "object-row-table";
|
|
42
|
+
readonly columnList: [];
|
|
43
|
+
readonly geoparquet: true;
|
|
44
|
+
readonly url: undefined;
|
|
45
|
+
readonly preserveBinary: false;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
24
49
|
/** ParquetJS table loader */
|
|
25
|
-
export declare const ParquetLoader:
|
|
26
|
-
|
|
50
|
+
export declare const ParquetLoader: {
|
|
51
|
+
readonly dataType: ObjectRowTable | GeoJSONTable;
|
|
52
|
+
readonly batchType: ObjectRowTableBatch | GeoJSONTableBatch;
|
|
53
|
+
readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ObjectRowTable>;
|
|
54
|
+
readonly parseFile: typeof parseParquetFile;
|
|
55
|
+
readonly parseFileInBatches: typeof parseParquetFileInBatches;
|
|
56
|
+
readonly name: "Apache Parquet";
|
|
57
|
+
readonly id: "parquet";
|
|
58
|
+
readonly module: "parquet";
|
|
59
|
+
readonly version: any;
|
|
60
|
+
readonly worker: true;
|
|
61
|
+
readonly category: "table";
|
|
62
|
+
readonly extensions: ["parquet"];
|
|
63
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
64
|
+
readonly binary: true;
|
|
65
|
+
readonly tests: ["PAR1", "PARE"];
|
|
66
|
+
readonly options: {
|
|
67
|
+
readonly parquet: {
|
|
68
|
+
readonly shape: "object-row-table";
|
|
69
|
+
readonly columnList: [];
|
|
70
|
+
readonly geoparquet: true;
|
|
71
|
+
readonly url: undefined;
|
|
72
|
+
readonly preserveBinary: false;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
export declare const GeoParquetWorkerLoader: {
|
|
77
|
+
readonly dataType: GeoJSONTable;
|
|
78
|
+
readonly batchType: GeoJSONTableBatch;
|
|
79
|
+
readonly name: "Apache Parquet";
|
|
80
|
+
readonly id: "parquet";
|
|
81
|
+
readonly module: "parquet";
|
|
82
|
+
readonly version: any;
|
|
83
|
+
readonly worker: true;
|
|
84
|
+
readonly category: "table";
|
|
85
|
+
readonly extensions: ["parquet"];
|
|
86
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
87
|
+
readonly binary: true;
|
|
88
|
+
readonly tests: ["PAR1", "PARE"];
|
|
89
|
+
readonly options: {
|
|
90
|
+
readonly parquet: {
|
|
91
|
+
readonly shape: "geojson-table";
|
|
92
|
+
readonly columnList: [];
|
|
93
|
+
readonly geoparquet: true;
|
|
94
|
+
readonly url: undefined;
|
|
95
|
+
readonly preserveBinary: false;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
};
|
|
27
99
|
/** ParquetJS table loader */
|
|
28
|
-
export declare const GeoParquetLoader:
|
|
100
|
+
export declare const GeoParquetLoader: {
|
|
101
|
+
readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ObjectRowTable | GeoJSONTable>;
|
|
102
|
+
readonly parseFile: typeof parseGeoParquetFile;
|
|
103
|
+
readonly parseFileInBatches: typeof parseGeoParquetFileInBatches;
|
|
104
|
+
readonly dataType: GeoJSONTable;
|
|
105
|
+
readonly batchType: GeoJSONTableBatch;
|
|
106
|
+
readonly name: "Apache Parquet";
|
|
107
|
+
readonly id: "parquet";
|
|
108
|
+
readonly module: "parquet";
|
|
109
|
+
readonly version: any;
|
|
110
|
+
readonly worker: true;
|
|
111
|
+
readonly category: "table";
|
|
112
|
+
readonly extensions: ["parquet"];
|
|
113
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
114
|
+
readonly binary: true;
|
|
115
|
+
readonly tests: ["PAR1", "PARE"];
|
|
116
|
+
readonly options: {
|
|
117
|
+
readonly parquet: {
|
|
118
|
+
readonly shape: "geojson-table";
|
|
119
|
+
readonly columnList: [];
|
|
120
|
+
readonly geoparquet: true;
|
|
121
|
+
readonly url: undefined;
|
|
122
|
+
readonly preserveBinary: false;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
};
|
|
29
126
|
/** @deprecated Test to see if we can improve perf of parquetjs loader */
|
|
30
|
-
export declare const ParquetColumnarWorkerLoader:
|
|
127
|
+
export declare const ParquetColumnarWorkerLoader: {
|
|
128
|
+
readonly dataType: ColumnarTable;
|
|
129
|
+
readonly batchType: ColumnarTableBatch;
|
|
130
|
+
readonly name: "Apache Parquet";
|
|
131
|
+
readonly id: "parquet";
|
|
132
|
+
readonly module: "parquet";
|
|
133
|
+
readonly version: any;
|
|
134
|
+
readonly worker: true;
|
|
135
|
+
readonly category: "table";
|
|
136
|
+
readonly extensions: ["parquet"];
|
|
137
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
138
|
+
readonly binary: true;
|
|
139
|
+
readonly tests: ["PAR1", "PARE"];
|
|
140
|
+
readonly options: {
|
|
141
|
+
readonly parquet: {
|
|
142
|
+
readonly shape: "object-row-table";
|
|
143
|
+
readonly columnList: [];
|
|
144
|
+
readonly geoparquet: true;
|
|
145
|
+
readonly url: undefined;
|
|
146
|
+
readonly preserveBinary: false;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
31
150
|
/** @deprecated Test to see if we can improve perf of parquetjs loader */
|
|
32
|
-
export declare const ParquetColumnarLoader:
|
|
151
|
+
export declare const ParquetColumnarLoader: {
|
|
152
|
+
readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ColumnarTable>;
|
|
153
|
+
readonly parseFile: typeof parseParquetFileInColumns;
|
|
154
|
+
readonly parseFileInBatches: typeof parseParquetFileInColumnarBatches;
|
|
155
|
+
readonly dataType: ColumnarTable;
|
|
156
|
+
readonly batchType: ColumnarTableBatch;
|
|
157
|
+
readonly name: "Apache Parquet";
|
|
158
|
+
readonly id: "parquet";
|
|
159
|
+
readonly module: "parquet";
|
|
160
|
+
readonly version: any;
|
|
161
|
+
readonly worker: true;
|
|
162
|
+
readonly category: "table";
|
|
163
|
+
readonly extensions: ["parquet"];
|
|
164
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
165
|
+
readonly binary: true;
|
|
166
|
+
readonly tests: ["PAR1", "PARE"];
|
|
167
|
+
readonly options: {
|
|
168
|
+
readonly parquet: {
|
|
169
|
+
readonly shape: "object-row-table";
|
|
170
|
+
readonly columnList: [];
|
|
171
|
+
readonly geoparquet: true;
|
|
172
|
+
readonly url: undefined;
|
|
173
|
+
readonly preserveBinary: false;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
};
|
|
33
177
|
//# sourceMappingURL=parquet-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,uCAAoC;AACxF,OAAO,EAAC,mBAAmB,EAAE,4BAA4B,EAAC,0CAAuC;AACjG,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EAClC,kDAA+C;AAEhD,OAAO,EAAC,MAAM,EAAC,sDAAmD;AAMlE,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,qCAAqC;IACrC,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,KAAK,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAC;QAC7C,0FAA0F;QAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACnC,0DAA0D;QAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qFAAqF;QACrF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gEAAgE;QAChE,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;CAuBsD,CAAC;AAEvF,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;kCAMH,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;CASjE,CAAC;AAMF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;CAuB+C,CAAC;AAEnF,6BAA6B;AAC7B,eAAO,MAAM,gBAAgB;kCAGR,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAS/D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;CAe4C,CAAC;AAErF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB;kCAEb,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAK8B,CAAC"}
|
package/dist/parquet-loader.js
CHANGED
|
@@ -8,11 +8,13 @@ import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./
|
|
|
8
8
|
export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
|
|
9
9
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
10
10
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
11
|
-
const VERSION = typeof "4.2.0-
|
|
11
|
+
const VERSION = typeof "4.2.0-beta.1" !== 'undefined' ? "4.2.0-beta.1" : 'latest';
|
|
12
12
|
/**
|
|
13
13
|
* ParquetJS table loader
|
|
14
14
|
*/
|
|
15
15
|
export const ParquetWorkerLoader = {
|
|
16
|
+
dataType: null,
|
|
17
|
+
batchType: null,
|
|
16
18
|
name: 'Apache Parquet',
|
|
17
19
|
id: 'parquet',
|
|
18
20
|
module: 'parquet',
|
|
@@ -36,6 +38,8 @@ export const ParquetWorkerLoader = {
|
|
|
36
38
|
/** ParquetJS table loader */
|
|
37
39
|
export const ParquetLoader = {
|
|
38
40
|
...ParquetWorkerLoader,
|
|
41
|
+
dataType: null,
|
|
42
|
+
batchType: null,
|
|
39
43
|
parse: (arrayBuffer, options) => parseParquetFile(new BlobFile(arrayBuffer), options),
|
|
40
44
|
parseFile: parseParquetFile,
|
|
41
45
|
parseFileInBatches: parseParquetFileInBatches
|
|
@@ -44,6 +48,8 @@ export const ParquetLoader = {
|
|
|
44
48
|
// @ts-ignore
|
|
45
49
|
ParquetLoader.Buffer = Buffer;
|
|
46
50
|
export const GeoParquetWorkerLoader = {
|
|
51
|
+
dataType: null,
|
|
52
|
+
batchType: null,
|
|
47
53
|
name: 'Apache Parquet',
|
|
48
54
|
id: 'parquet',
|
|
49
55
|
module: 'parquet',
|
|
@@ -75,6 +81,8 @@ export const GeoParquetLoader = {
|
|
|
75
81
|
};
|
|
76
82
|
/** @deprecated Test to see if we can improve perf of parquetjs loader */
|
|
77
83
|
export const ParquetColumnarWorkerLoader = {
|
|
84
|
+
dataType: null,
|
|
85
|
+
batchType: null,
|
|
78
86
|
name: 'Apache Parquet',
|
|
79
87
|
id: 'parquet',
|
|
80
88
|
module: 'parquet',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { ArrowTable } from '@loaders.gl/arrow';
|
|
3
3
|
/** Parquet WASM loader options */
|
|
4
4
|
export type ParquetWasmLoaderOptions = LoaderOptions & {
|
|
@@ -8,7 +8,26 @@ export type ParquetWasmLoaderOptions = LoaderOptions & {
|
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
/** Parquet WASM table loader */
|
|
11
|
-
export declare const ParquetWasmWorkerLoader:
|
|
11
|
+
export declare const ParquetWasmWorkerLoader: {
|
|
12
|
+
readonly dataType: ArrowTable;
|
|
13
|
+
readonly batchType: never;
|
|
14
|
+
readonly name: "Apache Parquet";
|
|
15
|
+
readonly id: "parquet-wasm";
|
|
16
|
+
readonly module: "parquet";
|
|
17
|
+
readonly version: any;
|
|
18
|
+
readonly worker: false;
|
|
19
|
+
readonly category: "table";
|
|
20
|
+
readonly extensions: ["parquet"];
|
|
21
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
22
|
+
readonly binary: true;
|
|
23
|
+
readonly tests: ["PAR1", "PARE"];
|
|
24
|
+
readonly options: {
|
|
25
|
+
readonly parquet: {
|
|
26
|
+
readonly type: "arrow-table";
|
|
27
|
+
readonly wasmUrl: "https://unpkg.com/parquet-wasm@0.6.0-beta.1/esm/arrow1_bg.wasm";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
12
31
|
/** Parquet WASM table loader */
|
|
13
|
-
export declare const ParquetWasmLoader:
|
|
32
|
+
export declare const ParquetWasmLoader: any;
|
|
14
33
|
//# sourceMappingURL=parquet-wasm-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-wasm-loader.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parquet-wasm-loader.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,kCAAkC;AAClC,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;CAoBoC,CAAC;AAEzE,gCAAgC;AAChC,eAAO,MAAM,iBAAiB,KAMoD,CAAC"}
|
|
@@ -5,6 +5,8 @@ import { parseParquetWasm } from "./lib/wasm/parse-parquet-wasm.js";
|
|
|
5
5
|
import { VERSION, PARQUET_WASM_URL } from "./lib/constants.js";
|
|
6
6
|
/** Parquet WASM table loader */
|
|
7
7
|
export const ParquetWasmWorkerLoader = {
|
|
8
|
+
dataType: null,
|
|
9
|
+
batchType: null,
|
|
8
10
|
name: 'Apache Parquet',
|
|
9
11
|
id: 'parquet-wasm',
|
|
10
12
|
module: 'parquet',
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { WriterWithEncoder } from '@loaders.gl/loader-utils';
|
|
2
|
-
import type { ArrowTable } from '@loaders.gl/arrow';
|
|
3
1
|
import type { WriterOptions } from '@loaders.gl/loader-utils';
|
|
4
2
|
export type ParquetWriterOptions = WriterOptions & {
|
|
5
3
|
parquet?: {
|
|
@@ -7,5 +5,5 @@ export type ParquetWriterOptions = WriterOptions & {
|
|
|
7
5
|
};
|
|
8
6
|
};
|
|
9
7
|
/** Parquet WASM writer */
|
|
10
|
-
export declare const ParquetWasmWriter:
|
|
8
|
+
export declare const ParquetWasmWriter: any;
|
|
11
9
|
//# sourceMappingURL=parquet-wasm-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-wasm-writer.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parquet-wasm-writer.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-writer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAI5D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,KAiBiD,CAAC"}
|
package/dist/parquet-writer.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Table, TableBatch } from '@loaders.gl/schema';
|
|
1
|
+
import { Table } from '@loaders.gl/schema';
|
|
3
2
|
export type ParquetWriterOptions = {};
|
|
4
|
-
export declare const ParquetWriter:
|
|
3
|
+
export declare const ParquetWriter: {
|
|
4
|
+
readonly name: "Apache Parquet";
|
|
5
|
+
readonly id: "parquet";
|
|
6
|
+
readonly module: "parquet";
|
|
7
|
+
readonly version: any;
|
|
8
|
+
readonly extensions: ["parquet"];
|
|
9
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
10
|
+
readonly binary: true;
|
|
11
|
+
readonly options: {};
|
|
12
|
+
readonly encode: (data: Table, options: ParquetWriterOptions | undefined) => Promise<ArrayBuffer>;
|
|
13
|
+
readonly encodeSync: typeof encodeSync;
|
|
14
|
+
};
|
|
15
|
+
declare function encodeSync(data: any, options?: ParquetWriterOptions): ArrayBuffer;
|
|
16
|
+
export {};
|
|
5
17
|
//# sourceMappingURL=parquet-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-writer.d.ts","sourceRoot":"","sources":["../src/parquet-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parquet-writer.d.ts","sourceRoot":"","sources":["../src/parquet-writer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAMrD,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEtC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWqD,CAAC;AAEhF,iBAAS,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,CAAC,EAAE,oBAAoB,eAEvD"}
|
package/dist/parquet-writer.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
5
5
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
6
|
-
const VERSION = typeof "4.2.0-
|
|
6
|
+
const VERSION = typeof "4.2.0-beta.1" !== 'undefined' ? "4.2.0-beta.1" : 'latest';
|
|
7
7
|
export const ParquetWriter = {
|
|
8
8
|
name: 'Apache Parquet',
|
|
9
9
|
id: 'parquet',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rle.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/codecs/rle.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,6BAA0B;AACrD,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAC,qBAAkB;AAIjE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,EAAE,EACb,IAAI,EAAE,mBAAmB,GACxB,MAAM,CA4DR;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,mBAAmB,GACxB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"rle.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/codecs/rle.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,6BAA0B;AACrD,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAC,qBAAkB;AAIjE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,GAAG,EAAE,EACb,IAAI,EAAE,mBAAmB,GACxB,MAAM,CA4DR;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,mBAAmB,GACxB,MAAM,EAAE,CAgCV"}
|
|
@@ -67,13 +67,17 @@ export function decodeValues(type, cursor, count, opts) {
|
|
|
67
67
|
while (values.length < count) {
|
|
68
68
|
const header = varint.decode(cursor.buffer, cursor.offset);
|
|
69
69
|
cursor.offset += varint.encodingLength(header);
|
|
70
|
+
let decodedValues;
|
|
70
71
|
if (header & 1) {
|
|
71
72
|
const count = (header >> 1) * 8;
|
|
72
|
-
|
|
73
|
+
decodedValues = decodeRunBitpacked(cursor, count, opts);
|
|
73
74
|
}
|
|
74
75
|
else {
|
|
75
76
|
const count = header >> 1;
|
|
76
|
-
|
|
77
|
+
decodedValues = decodeRunRepeated(cursor, count, opts);
|
|
78
|
+
}
|
|
79
|
+
for (const value of decodedValues) {
|
|
80
|
+
values.push(value);
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
values = values.slice(0, count);
|
|
@@ -10,7 +10,7 @@ export declare const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Com
|
|
|
10
10
|
* @param options.modules External library dependencies
|
|
11
11
|
*/
|
|
12
12
|
export declare function preloadCompressions(options?: {
|
|
13
|
-
modules
|
|
13
|
+
modules?: {
|
|
14
14
|
[key: string]: any;
|
|
15
15
|
};
|
|
16
16
|
}): Promise<void[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,WAAW,EAQZ,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,WAAW,EAQZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAsCpD;;GAEG;AAEH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAW/E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAAC,mBAMnF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAQjB;AAKD,wBAAgB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvF"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { NoCompression, GZipCompression, SnappyCompression, BrotliCompression,
|
|
5
5
|
// LZOCompression,
|
|
6
6
|
LZ4Compression, ZstdCompression } from '@loaders.gl/compression';
|
|
7
|
+
import { registerJSModules } from '@loaders.gl/loader-utils';
|
|
7
8
|
/** We can't use loaders-util buffer handling since we are dependent on buffers even in the browser */
|
|
8
9
|
function toBuffer(arrayBuffer) {
|
|
9
10
|
return Buffer.from(arrayBuffer);
|
|
@@ -56,8 +57,9 @@ export const PARQUET_COMPRESSION_METHODS = {
|
|
|
56
57
|
* @param options.modules External library dependencies
|
|
57
58
|
*/
|
|
58
59
|
export async function preloadCompressions(options) {
|
|
60
|
+
registerJSModules(options?.modules);
|
|
59
61
|
const compressions = Object.values(PARQUET_COMPRESSION_METHODS);
|
|
60
|
-
return await Promise.all(compressions.map((compression) => compression.preload()));
|
|
62
|
+
return await Promise.all(compressions.map((compression) => compression.preload(options?.modules)));
|
|
61
63
|
}
|
|
62
64
|
/**
|
|
63
65
|
* Deflate a value using compression method `method`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoders.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EAGf,gBAAgB,EACjB,6BAA0B;AAC3B,OAAO,EAAC,YAAY,EAAsC,2BAAwB;AAClF,OAAO,EAML,aAAa,EAEd,mCAAgC;AAKjC;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"decoders.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EAGf,gBAAgB,EACjB,6BAA0B;AAC3B,OAAO,EAAC,YAAY,EAAsC,2BAAwB;AAClF,OAAO,EAML,aAAa,EAEd,mCAAgC;AAKjC;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAyD7B;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC,CA0B1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,aAAa,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV;IACD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CA4DA"}
|
|
@@ -35,7 +35,10 @@ export async function decodeDataPages(buffer, context) {
|
|
|
35
35
|
// eslint-disable-next-line no-continue
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
const valueEncoding = getThriftEnum(Encoding, page.pageHeader.data_page_header?.encoding);
|
|
39
|
+
// Pages might be in different encodings. We don't need to decode in case
|
|
40
|
+
// of 'PLAIN' encoding because all values are already in place
|
|
41
|
+
if (dictionary.length && valueEncoding !== 'PLAIN') {
|
|
39
42
|
// eslint-disable-next-line no-loop-func
|
|
40
43
|
page.values = page.values.map((value) => dictionary[value]);
|
|
41
44
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/parquet",
|
|
3
|
-
"version": "4.2.0-
|
|
3
|
+
"version": "4.2.0-beta.2",
|
|
4
4
|
"description": "Framework-independent loader for Apache Parquet files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"base64-js and ieee754 are used by buffer polyfill"
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@loaders.gl/arrow": "4.2.0-
|
|
64
|
-
"@loaders.gl/bson": "4.2.0-
|
|
65
|
-
"@loaders.gl/compression": "4.2.0-
|
|
66
|
-
"@loaders.gl/gis": "4.2.0-
|
|
67
|
-
"@loaders.gl/loader-utils": "4.2.0-
|
|
68
|
-
"@loaders.gl/schema": "4.2.0-
|
|
69
|
-
"@loaders.gl/wkt": "4.2.0-
|
|
63
|
+
"@loaders.gl/arrow": "4.2.0-beta.2",
|
|
64
|
+
"@loaders.gl/bson": "4.2.0-beta.2",
|
|
65
|
+
"@loaders.gl/compression": "4.2.0-beta.2",
|
|
66
|
+
"@loaders.gl/gis": "4.2.0-beta.2",
|
|
67
|
+
"@loaders.gl/loader-utils": "4.2.0-beta.2",
|
|
68
|
+
"@loaders.gl/schema": "4.2.0-beta.2",
|
|
69
|
+
"@loaders.gl/wkt": "4.2.0-beta.2",
|
|
70
70
|
"async-mutex": "^0.2.2",
|
|
71
71
|
"base64-js": "^1.3.1",
|
|
72
72
|
"brotli": "^1.3.2",
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"@loaders.gl/core": "^4.0.0",
|
|
94
94
|
"apache-arrow": ">= 15.0.0"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "13c03663fec365a4d24c06377d50035cebd7ba9f"
|
|
97
97
|
}
|
|
@@ -11,6 +11,7 @@ import {ParquetSchema} from '../../parquetjs/schema/schema';
|
|
|
11
11
|
import {materializeColumns} from '../../parquetjs/schema/shred';
|
|
12
12
|
import {getSchemaFromParquetReader} from './get-parquet-schema';
|
|
13
13
|
import {installBufferPolyfill} from '../../polyfills/buffer/index';
|
|
14
|
+
import {preloadCompressions} from '../../parquetjs/compression';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* @deprecated
|
|
@@ -20,6 +21,8 @@ export async function parseParquetFileInColumns(
|
|
|
20
21
|
options?: ParquetLoaderOptions
|
|
21
22
|
): Promise<ColumnarTable> {
|
|
22
23
|
installBufferPolyfill();
|
|
24
|
+
await preloadCompressions(options);
|
|
25
|
+
|
|
23
26
|
for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
|
|
24
27
|
return {
|
|
25
28
|
shape: 'columnar-table',
|
|
@@ -37,6 +40,9 @@ export async function* parseParquetFileInColumnarBatches(
|
|
|
37
40
|
file: ReadableFile,
|
|
38
41
|
options?: ParquetLoaderOptions
|
|
39
42
|
): AsyncIterable<ColumnarTableBatch> {
|
|
43
|
+
installBufferPolyfill();
|
|
44
|
+
await preloadCompressions(options);
|
|
45
|
+
|
|
40
46
|
const reader = new ParquetReader(file);
|
|
41
47
|
|
|
42
48
|
// Extract schema and geo metadata
|
|
@@ -10,6 +10,7 @@ import type {ParquetRow} from '../../parquetjs/schema/declare';
|
|
|
10
10
|
import {ParquetReader} from '../../parquetjs/parser/parquet-reader';
|
|
11
11
|
import {getSchemaFromParquetReader} from './get-parquet-schema';
|
|
12
12
|
import {installBufferPolyfill} from '../../polyfills/buffer/index';
|
|
13
|
+
import {preloadCompressions} from '../../parquetjs/compression';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* * Parse a parquet file using parquetjs
|
|
@@ -22,6 +23,7 @@ export async function parseParquetFile(
|
|
|
22
23
|
options?: ParquetLoaderOptions
|
|
23
24
|
): Promise<ObjectRowTable> {
|
|
24
25
|
installBufferPolyfill();
|
|
26
|
+
await preloadCompressions(options);
|
|
25
27
|
|
|
26
28
|
const reader = new ParquetReader(file, {
|
|
27
29
|
preserveBinary: options?.parquet?.preserveBinary
|
|
@@ -57,6 +59,9 @@ export async function* parseParquetFileInBatches(
|
|
|
57
59
|
file: ReadableFile,
|
|
58
60
|
options?: ParquetLoaderOptions
|
|
59
61
|
): AsyncIterable<ObjectRowTableBatch> {
|
|
62
|
+
installBufferPolyfill();
|
|
63
|
+
await preloadCompressions(options);
|
|
64
|
+
|
|
60
65
|
const reader = new ParquetReader(file, {
|
|
61
66
|
preserveBinary: options?.parquet?.preserveBinary
|
|
62
67
|
});
|