@loaders.gl/parquet 4.0.4 → 4.1.0-alpha.10
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/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.cjs +138 -66
- package/dist/index.d.ts +1 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -1
- package/dist/lib/arrow/convert-row-group-to-columns.js.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.js.map +1 -1
- package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -1
- package/dist/lib/arrow/convert-schema-to-parquet.js.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
- package/dist/lib/parsers/parse-geoparquet.d.ts +6 -0
- package/dist/lib/parsers/parse-geoparquet.d.ts.map +1 -0
- package/dist/lib/parsers/parse-geoparquet.js +56 -0
- package/dist/lib/parsers/parse-geoparquet.js.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts +6 -0
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/lib/parsers/parse-parquet.d.ts +17 -0
- package/dist/lib/parsers/parse-parquet.d.ts.map +1 -0
- package/dist/lib/parsers/{parse-parquet-to-rows.js → parse-parquet.js} +2 -8
- package/dist/lib/parsers/parse-parquet.js.map +1 -0
- package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +1 -1
- package/dist/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/lib/wasm/load-wasm-browser.d.ts.map +1 -1
- package/dist/lib/wasm/load-wasm-browser.js.map +1 -1
- package/dist/lib/wasm/load-wasm-node.d.ts.map +1 -1
- package/dist/lib/wasm/load-wasm-node.js.map +1 -1
- package/dist/lib/wasm/load-wasm.d.ts.map +1 -1
- package/dist/lib/wasm/load-wasm.js.map +1 -1
- package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +1 -1
- package/dist/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/parquet-loader.d.ts +14 -4
- package/dist/parquet-loader.d.ts.map +1 -1
- package/dist/parquet-loader.js +51 -5
- package/dist/parquet-loader.js.map +1 -1
- package/dist/parquet-wasm-loader.d.ts +4 -2
- package/dist/parquet-wasm-loader.d.ts.map +1 -1
- package/dist/parquet-wasm-loader.js +7 -2
- package/dist/parquet-wasm-loader.js.map +1 -1
- package/dist/parquet-wasm-writer.d.ts.map +1 -1
- package/dist/parquet-wasm-writer.js +1 -1
- package/dist/parquet-wasm-writer.js.map +1 -1
- package/dist/parquet-writer.d.ts.map +1 -1
- package/dist/parquet-writer.js +1 -1
- package/dist/parquet-writer.js.map +1 -1
- package/dist/parquetjs/modules.d.ts +21 -0
- package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts.map +1 -1
- package/dist/polyfills/buffer/buffer-polyfill.browser.js.map +1 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.d.ts.map +1 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.js.map +1 -1
- package/dist/polyfills/buffer/buffer.d.ts.map +1 -1
- package/dist/polyfills/buffer/buffer.js.map +1 -1
- package/dist/polyfills/buffer/index.d.ts.map +1 -1
- package/dist/polyfills/buffer/index.js.map +1 -1
- package/dist/polyfills/util.d.ts.map +1 -1
- package/dist/polyfills/util.js.map +1 -1
- package/dist/workers/parquet-worker.js +1 -1
- package/dist/workers/parquet-worker.js.map +1 -1
- package/package.json +17 -14
- package/src/constants.ts +2 -1
- package/src/index.ts +9 -61
- package/src/lib/arrow/convert-row-group-to-columns.ts +2 -1
- package/src/lib/arrow/convert-schema-from-parquet.ts +2 -1
- package/src/lib/arrow/convert-schema-to-parquet.ts +2 -1
- package/src/lib/parsers/get-parquet-schema.ts +4 -0
- package/src/lib/parsers/parse-geoparquet.ts +88 -0
- package/src/lib/parsers/parse-parquet-to-columns.ts +8 -1
- package/src/lib/parsers/{parse-parquet-to-rows.ts → parse-parquet.ts} +21 -21
- package/src/lib/wasm/encode-parquet-wasm.ts +4 -0
- package/src/lib/wasm/load-wasm-browser.ts +4 -0
- package/src/lib/wasm/load-wasm-node.ts +4 -0
- package/src/lib/wasm/load-wasm.ts +4 -0
- package/src/lib/wasm/parse-parquet-wasm.ts +4 -0
- package/src/parquet-loader.ts +91 -10
- package/src/parquet-wasm-loader.ts +12 -3
- package/src/parquet-wasm-writer.ts +2 -1
- package/src/parquet-writer.ts +2 -1
- package/src/polyfills/buffer/buffer-polyfill.browser.ts +3 -1
- package/src/polyfills/buffer/buffer-polyfill.node.ts +3 -1
- package/src/polyfills/buffer/buffer.ts +2 -1
- package/src/polyfills/buffer/index.ts +2 -1
- package/src/polyfills/util.js +2 -1
- package/src/workers/parquet-worker.ts +3 -2
- package/dist/lib/parsers/parse-parquet-to-rows.d.ts +0 -6
- package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +0 -1
- package/dist/lib/parsers/parse-parquet-to-rows.js.map +0 -1
- package/dist/parquetjs/modules.d.js +0 -2
- package/dist/parquetjs/modules.d.js.map +0 -1
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,sBAAsB,QAAQ,CAAC"}
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["PARQUET_MAGIC","PARQUET_MAGIC_ENCRYPTED","PARQUET_VERSION","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING"],"sources":["../src/constants.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PARQUET_MAGIC","PARQUET_MAGIC_ENCRYPTED","PARQUET_VERSION","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING"],"sources":["../src/constants.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/**\n * Parquet File Magic String\n */\nexport const PARQUET_MAGIC = 'PAR1';\nexport const PARQUET_MAGIC_ENCRYPTED = 'PARE';\n\n/**\n * Parquet File Format Version\n */\nexport const PARQUET_VERSION = 1;\n\n/**\n * Internal type used for repetition/definition levels\n */\nexport const PARQUET_RDLVL_TYPE = 'INT32';\nexport const PARQUET_RDLVL_ENCODING = 'RLE';\n"],"mappings":"AAQA,OAAO,MAAMA,aAAa,GAAG,MAAM;AACnC,OAAO,MAAMC,uBAAuB,GAAG,MAAM;AAK7C,OAAO,MAAMC,eAAe,GAAG,CAAC;AAKhC,OAAO,MAAMC,kBAAkB,GAAG,OAAO;AACzC,OAAO,MAAMC,sBAAsB,GAAG,KAAK"}
|
package/dist/index.cjs
CHANGED
|
@@ -32,12 +32,15 @@ var src_exports = {};
|
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
Buffer: () => Buffer3,
|
|
34
34
|
BufferPolyfill: () => Buffer2,
|
|
35
|
-
|
|
35
|
+
GeoParquetLoader: () => GeoParquetLoader,
|
|
36
|
+
GeoParquetWorkerLoader: () => GeoParquetWorkerLoader,
|
|
37
|
+
ParquetColumnarLoader: () => ParquetColumnarLoader,
|
|
38
|
+
ParquetColumnarWorkerLoader: () => ParquetColumnarWorkerLoader,
|
|
36
39
|
ParquetEncoder: () => ParquetEncoder,
|
|
37
|
-
ParquetLoader: () =>
|
|
40
|
+
ParquetLoader: () => ParquetLoader,
|
|
38
41
|
ParquetReader: () => ParquetReader,
|
|
39
42
|
ParquetSchema: () => ParquetSchema,
|
|
40
|
-
ParquetWorkerLoader: () =>
|
|
43
|
+
ParquetWorkerLoader: () => ParquetWorkerLoader,
|
|
41
44
|
_ParquetWriter: () => ParquetWriter,
|
|
42
45
|
convertParquetSchema: () => convertParquetSchema,
|
|
43
46
|
convertParquetToArrowSchema: () => convertParquetSchema,
|
|
@@ -1776,51 +1779,8 @@ globalThis.process = globalThis.process || {};
|
|
|
1776
1779
|
globalThis.process.env = globalThis.process.env || {};
|
|
1777
1780
|
var Buffer3 = installBufferPolyfill();
|
|
1778
1781
|
|
|
1779
|
-
// src/index.ts
|
|
1780
|
-
var import_loader_utils = require("@loaders.gl/loader-utils");
|
|
1781
|
-
|
|
1782
1782
|
// src/parquet-loader.ts
|
|
1783
|
-
var
|
|
1784
|
-
var ParquetLoader = {
|
|
1785
|
-
name: "Apache Parquet",
|
|
1786
|
-
id: "parquet",
|
|
1787
|
-
module: "parquet",
|
|
1788
|
-
version: VERSION,
|
|
1789
|
-
worker: true,
|
|
1790
|
-
category: "table",
|
|
1791
|
-
extensions: ["parquet"],
|
|
1792
|
-
mimeTypes: ["application/octet-stream"],
|
|
1793
|
-
binary: true,
|
|
1794
|
-
tests: ["PAR1", "PARE"],
|
|
1795
|
-
options: {
|
|
1796
|
-
parquet: {
|
|
1797
|
-
shape: "object-row-table",
|
|
1798
|
-
columnList: [],
|
|
1799
|
-
geoparquet: true,
|
|
1800
|
-
url: void 0,
|
|
1801
|
-
preserveBinary: false
|
|
1802
|
-
}
|
|
1803
|
-
}
|
|
1804
|
-
};
|
|
1805
|
-
var ParquetColumnarLoader = {
|
|
1806
|
-
name: "Apache Parquet",
|
|
1807
|
-
id: "parquet",
|
|
1808
|
-
module: "parquet",
|
|
1809
|
-
version: VERSION,
|
|
1810
|
-
worker: true,
|
|
1811
|
-
category: "table",
|
|
1812
|
-
extensions: ["parquet"],
|
|
1813
|
-
mimeTypes: ["application/octet-stream"],
|
|
1814
|
-
binary: true,
|
|
1815
|
-
tests: ["PAR1", "PARE"],
|
|
1816
|
-
options: ParquetLoader.options
|
|
1817
|
-
};
|
|
1818
|
-
ParquetLoader.Buffer = Buffer;
|
|
1819
|
-
ParquetColumnarLoader.Buffer = Buffer;
|
|
1820
|
-
|
|
1821
|
-
// src/lib/parsers/parse-parquet-to-rows.ts
|
|
1822
|
-
var import_gis2 = require("@loaders.gl/gis");
|
|
1823
|
-
var import_wkt = require("@loaders.gl/wkt");
|
|
1783
|
+
var import_loader_utils = require("@loaders.gl/loader-utils");
|
|
1824
1784
|
|
|
1825
1785
|
// src/parquetjs/codecs/plain.ts
|
|
1826
1786
|
var import_int53 = __toESM(require("int53"), 1);
|
|
@@ -7199,7 +7159,7 @@ async function getSchemaFromParquetReader(reader) {
|
|
|
7199
7159
|
return schema;
|
|
7200
7160
|
}
|
|
7201
7161
|
|
|
7202
|
-
// src/lib/parsers/parse-parquet
|
|
7162
|
+
// src/lib/parsers/parse-parquet.ts
|
|
7203
7163
|
async function parseParquetFile(file, options) {
|
|
7204
7164
|
var _a, _b;
|
|
7205
7165
|
installBufferPolyfill();
|
|
@@ -7246,6 +7206,34 @@ async function* parseParquetFileInBatches(file, options) {
|
|
|
7246
7206
|
}
|
|
7247
7207
|
}
|
|
7248
7208
|
function convertTable(objectRowTable, shape) {
|
|
7209
|
+
switch (shape) {
|
|
7210
|
+
case "object-row-table":
|
|
7211
|
+
return objectRowTable;
|
|
7212
|
+
case "geojson-table":
|
|
7213
|
+
return objectRowTable;
|
|
7214
|
+
default:
|
|
7215
|
+
throw new Error(shape);
|
|
7216
|
+
}
|
|
7217
|
+
}
|
|
7218
|
+
|
|
7219
|
+
// src/lib/parsers/parse-geoparquet.ts
|
|
7220
|
+
var import_gis2 = require("@loaders.gl/gis");
|
|
7221
|
+
var import_wkt = require("@loaders.gl/wkt");
|
|
7222
|
+
async function parseGeoParquetFile(file, options) {
|
|
7223
|
+
var _a;
|
|
7224
|
+
const table = await parseParquetFile(file, { ...options, shape: "object-row-table" });
|
|
7225
|
+
const shape = (_a = options == null ? void 0 : options.parquet) == null ? void 0 : _a.shape;
|
|
7226
|
+
return convertTable2(table, shape);
|
|
7227
|
+
}
|
|
7228
|
+
async function* parseGeoParquetFileInBatches(file, options) {
|
|
7229
|
+
var _a;
|
|
7230
|
+
const tableBatches = parseParquetFileInBatches(file, { ...options, shape: "object-row-table" });
|
|
7231
|
+
for await (const batch of tableBatches) {
|
|
7232
|
+
const shape = (_a = options == null ? void 0 : options.parquet) == null ? void 0 : _a.shape;
|
|
7233
|
+
yield convertBatch(batch, shape);
|
|
7234
|
+
}
|
|
7235
|
+
}
|
|
7236
|
+
function convertTable2(objectRowTable, shape) {
|
|
7249
7237
|
switch (shape) {
|
|
7250
7238
|
case "object-row-table":
|
|
7251
7239
|
return objectRowTable;
|
|
@@ -7262,6 +7250,27 @@ function convertTable(objectRowTable, shape) {
|
|
|
7262
7250
|
throw new Error(shape);
|
|
7263
7251
|
}
|
|
7264
7252
|
}
|
|
7253
|
+
function convertBatch(objectRowBatch, shape) {
|
|
7254
|
+
switch (shape) {
|
|
7255
|
+
case "object-row-table":
|
|
7256
|
+
return objectRowBatch;
|
|
7257
|
+
case "geojson-table":
|
|
7258
|
+
try {
|
|
7259
|
+
const geojsonTable = (0, import_gis2.convertWKBTableToGeoJSON)(objectRowBatch, objectRowBatch.schema, [
|
|
7260
|
+
import_wkt.WKTLoader,
|
|
7261
|
+
import_wkt.WKBLoader
|
|
7262
|
+
]);
|
|
7263
|
+
return {
|
|
7264
|
+
...objectRowBatch,
|
|
7265
|
+
...geojsonTable
|
|
7266
|
+
};
|
|
7267
|
+
} catch (error) {
|
|
7268
|
+
return objectRowBatch;
|
|
7269
|
+
}
|
|
7270
|
+
default:
|
|
7271
|
+
throw new Error(shape);
|
|
7272
|
+
}
|
|
7273
|
+
}
|
|
7265
7274
|
|
|
7266
7275
|
// src/lib/parsers/parse-parquet-to-columns.ts
|
|
7267
7276
|
async function parseParquetFileInColumns(file, options) {
|
|
@@ -7295,6 +7304,87 @@ function convertRowGroupToTableBatch(rowGroup, parquetSchema, schema) {
|
|
|
7295
7304
|
};
|
|
7296
7305
|
}
|
|
7297
7306
|
|
|
7307
|
+
// src/parquet-loader.ts
|
|
7308
|
+
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
7309
|
+
var ParquetWorkerLoader = {
|
|
7310
|
+
name: "Apache Parquet",
|
|
7311
|
+
id: "parquet",
|
|
7312
|
+
module: "parquet",
|
|
7313
|
+
version: VERSION,
|
|
7314
|
+
worker: true,
|
|
7315
|
+
category: "table",
|
|
7316
|
+
extensions: ["parquet"],
|
|
7317
|
+
mimeTypes: ["application/octet-stream"],
|
|
7318
|
+
binary: true,
|
|
7319
|
+
tests: ["PAR1", "PARE"],
|
|
7320
|
+
options: {
|
|
7321
|
+
parquet: {
|
|
7322
|
+
shape: "object-row-table",
|
|
7323
|
+
columnList: [],
|
|
7324
|
+
geoparquet: true,
|
|
7325
|
+
url: void 0,
|
|
7326
|
+
preserveBinary: false
|
|
7327
|
+
}
|
|
7328
|
+
}
|
|
7329
|
+
};
|
|
7330
|
+
var ParquetLoader = {
|
|
7331
|
+
...ParquetWorkerLoader,
|
|
7332
|
+
parse: (arrayBuffer, options) => parseParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options),
|
|
7333
|
+
parseFile: parseParquetFile,
|
|
7334
|
+
parseFileInBatches: parseParquetFileInBatches
|
|
7335
|
+
};
|
|
7336
|
+
ParquetLoader.Buffer = Buffer;
|
|
7337
|
+
var GeoParquetWorkerLoader = {
|
|
7338
|
+
name: "Apache Parquet",
|
|
7339
|
+
id: "parquet",
|
|
7340
|
+
module: "parquet",
|
|
7341
|
+
version: VERSION,
|
|
7342
|
+
worker: true,
|
|
7343
|
+
category: "table",
|
|
7344
|
+
extensions: ["parquet"],
|
|
7345
|
+
mimeTypes: ["application/octet-stream"],
|
|
7346
|
+
binary: true,
|
|
7347
|
+
tests: ["PAR1", "PARE"],
|
|
7348
|
+
options: {
|
|
7349
|
+
parquet: {
|
|
7350
|
+
shape: "geojson-table",
|
|
7351
|
+
columnList: [],
|
|
7352
|
+
geoparquet: true,
|
|
7353
|
+
url: void 0,
|
|
7354
|
+
preserveBinary: false
|
|
7355
|
+
}
|
|
7356
|
+
}
|
|
7357
|
+
};
|
|
7358
|
+
var GeoParquetLoader = {
|
|
7359
|
+
...GeoParquetWorkerLoader,
|
|
7360
|
+
parse(arrayBuffer, options) {
|
|
7361
|
+
return parseGeoParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options);
|
|
7362
|
+
},
|
|
7363
|
+
parseFile: parseGeoParquetFile,
|
|
7364
|
+
parseFileInBatches: parseGeoParquetFileInBatches
|
|
7365
|
+
};
|
|
7366
|
+
var ParquetColumnarWorkerLoader = {
|
|
7367
|
+
name: "Apache Parquet",
|
|
7368
|
+
id: "parquet",
|
|
7369
|
+
module: "parquet",
|
|
7370
|
+
version: VERSION,
|
|
7371
|
+
worker: true,
|
|
7372
|
+
category: "table",
|
|
7373
|
+
extensions: ["parquet"],
|
|
7374
|
+
mimeTypes: ["application/octet-stream"],
|
|
7375
|
+
binary: true,
|
|
7376
|
+
tests: ["PAR1", "PARE"],
|
|
7377
|
+
options: ParquetLoader.options
|
|
7378
|
+
};
|
|
7379
|
+
var ParquetColumnarLoader = {
|
|
7380
|
+
...ParquetColumnarWorkerLoader,
|
|
7381
|
+
parse(arrayBuffer, options) {
|
|
7382
|
+
return parseParquetFileInColumns(new import_loader_utils.BlobFile(arrayBuffer), options);
|
|
7383
|
+
},
|
|
7384
|
+
parseFile: parseParquetFileInColumns,
|
|
7385
|
+
parseFileInBatches: parseParquetFileInColumnarBatches
|
|
7386
|
+
};
|
|
7387
|
+
|
|
7298
7388
|
// src/parquet-writer.ts
|
|
7299
7389
|
var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
7300
7390
|
var ParquetWriter = {
|
|
@@ -7689,24 +7779,6 @@ function encodeFooter(schema, rowCount, rowGroups, userMetadata) {
|
|
|
7689
7779
|
footerEncoded.write(PARQUET_MAGIC2, metadataEncoded.length + 4);
|
|
7690
7780
|
return footerEncoded;
|
|
7691
7781
|
}
|
|
7692
|
-
|
|
7693
|
-
// src/index.ts
|
|
7694
|
-
var ParquetLoader2 = {
|
|
7695
|
-
...ParquetLoader,
|
|
7696
|
-
parse(arrayBuffer, options) {
|
|
7697
|
-
return parseParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options);
|
|
7698
|
-
},
|
|
7699
|
-
parseFile: parseParquetFile,
|
|
7700
|
-
parseFileInBatches: parseParquetFileInBatches
|
|
7701
|
-
};
|
|
7702
|
-
var ParquetColumnarLoader2 = {
|
|
7703
|
-
...ParquetColumnarLoader,
|
|
7704
|
-
parse(arrayBuffer, options) {
|
|
7705
|
-
return parseParquetFileInColumns(new import_loader_utils.BlobFile(arrayBuffer), options);
|
|
7706
|
-
},
|
|
7707
|
-
parseFile: parseParquetFileInColumns,
|
|
7708
|
-
parseFileInBatches: parseParquetFileInColumnarBatches
|
|
7709
|
-
};
|
|
7710
7782
|
/* !
|
|
7711
7783
|
* The buffer module from node.js, for the browser.
|
|
7712
7784
|
* @author Feross Aboukhadijeh <https://feross.org>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
export { Buffer } from './polyfills/buffer/install-buffer-polyfill';
|
|
2
|
-
|
|
3
|
-
import type { ObjectRowTable, ObjectRowTableBatch, ColumnarTable, ColumnarTableBatch, GeoJSONTable, GeoJSONTableBatch } from '@loaders.gl/schema';
|
|
4
|
-
import { ParquetLoader as ParquetWorkerLoader, ParquetLoaderOptions } from './parquet-loader';
|
|
5
|
-
export { ParquetWorkerLoader };
|
|
6
|
-
/** ParquetJS table loader */
|
|
7
|
-
export declare const ParquetLoader: LoaderWithParser<ObjectRowTable | GeoJSONTable, ObjectRowTableBatch | GeoJSONTableBatch, ParquetLoaderOptions>;
|
|
8
|
-
/** ParquetJS table loader */
|
|
9
|
-
export declare const ParquetColumnarLoader: LoaderWithParser<ColumnarTable, ColumnarTableBatch, ParquetLoaderOptions>;
|
|
2
|
+
export { ParquetWorkerLoader, ParquetLoader, GeoParquetWorkerLoader, GeoParquetLoader, ParquetColumnarWorkerLoader, ParquetColumnarLoader } from './parquet-loader';
|
|
10
3
|
export { ParquetWriter as _ParquetWriter } from './parquet-writer';
|
|
11
4
|
export { preloadCompressions } from './parquetjs/compression';
|
|
12
5
|
export { ParquetSchema } from './parquetjs/schema/schema';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,4CAA4C,CAAC;AAIlE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAKjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,2BAA2B,EACpD,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,5 @@
|
|
|
1
1
|
export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
|
|
2
|
-
|
|
3
|
-
import { ParquetLoader as ParquetWorkerLoader, ParquetColumnarLoader as ParquetColumnarWorkerLoader } from "./parquet-loader.js";
|
|
4
|
-
import { parseParquetFile, parseParquetFileInBatches } from "./lib/parsers/parse-parquet-to-rows.js";
|
|
5
|
-
import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./lib/parsers/parse-parquet-to-columns.js";
|
|
6
|
-
export { ParquetWorkerLoader };
|
|
7
|
-
export const ParquetLoader = {
|
|
8
|
-
...ParquetWorkerLoader,
|
|
9
|
-
parse(arrayBuffer, options) {
|
|
10
|
-
return parseParquetFile(new BlobFile(arrayBuffer), options);
|
|
11
|
-
},
|
|
12
|
-
parseFile: parseParquetFile,
|
|
13
|
-
parseFileInBatches: parseParquetFileInBatches
|
|
14
|
-
};
|
|
15
|
-
export const ParquetColumnarLoader = {
|
|
16
|
-
...ParquetColumnarWorkerLoader,
|
|
17
|
-
parse(arrayBuffer, options) {
|
|
18
|
-
return parseParquetFileInColumns(new BlobFile(arrayBuffer), options);
|
|
19
|
-
},
|
|
20
|
-
parseFile: parseParquetFileInColumns,
|
|
21
|
-
parseFileInBatches: parseParquetFileInColumnarBatches
|
|
22
|
-
};
|
|
2
|
+
export { ParquetWorkerLoader, ParquetLoader, GeoParquetWorkerLoader, GeoParquetLoader, ParquetColumnarWorkerLoader, ParquetColumnarLoader } from "./parquet-loader.js";
|
|
23
3
|
export { ParquetWriter as _ParquetWriter } from "./parquet-writer.js";
|
|
24
4
|
export { preloadCompressions } from "./parquetjs/compression.js";
|
|
25
5
|
export { ParquetSchema } from "./parquetjs/schema/schema.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Buffer","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Buffer","ParquetWorkerLoader","ParquetLoader","GeoParquetWorkerLoader","GeoParquetLoader","ParquetColumnarWorkerLoader","ParquetColumnarLoader","ParquetWriter","_ParquetWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEncoder","convertParquetSchema","convertParquetToArrowSchema","BufferPolyfill","installBufferPolyfill"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {Buffer} from './polyfills/buffer/install-buffer-polyfill';\n\n// import {ArrowTable, ArrowTableBatch} from '@loaders.gl/arrow';\n\nexport {\n ParquetWorkerLoader,\n ParquetLoader,\n GeoParquetWorkerLoader,\n GeoParquetLoader,\n ParquetColumnarWorkerLoader,\n ParquetColumnarLoader\n} from './parquet-loader';\n\n// import type {ParquetWasmLoaderOptions} from './lib/wasm/parse-parquet-wasm';\n// import {parseParquetWasm} from './lib/wasm/parse-parquet-wasm';\n// import {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\n// export {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEncoder} from './parquetjs/encoder/parquet-encoder';\n\nexport {\n convertParquetSchema,\n convertParquetSchema as convertParquetToArrowSchema\n} from './lib/arrow/convert-schema-from-parquet';\n\n// Experimental\nexport {BufferPolyfill, installBufferPolyfill} from './polyfills/buffer';\n"],"mappings":"SAIQA,MAAM;AAAA,SAKZC,mBAAmB,EACnBC,aAAa,EACbC,sBAAsB,EACtBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,qBAAqB;AAAA,SAOfC,aAAa,IAAIC,cAAc;AAAA,SAK/BC,mBAAmB;AAAA,SAEnBC,aAAa;AAAA,SACbC,aAAa;AAAA,SACbC,cAAc;AAAA,SAGpBC,oBAAoB,EACpBA,oBAAoB,IAAIC,2BAA2B;AAAA,SAI7CC,cAAc,EAAEC,qBAAqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-row-group-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-row-group-to-columns.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-row-group-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-row-group-to-columns.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;AAE7E,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,GACxB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAMvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-row-group-to-columns.js","names":["convertParquetRowGroupToColumns","schema","rowGroup","columns","columnName","data","Object","entries","columnData","values"],"sources":["../../../src/lib/arrow/convert-row-group-to-columns.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"convert-row-group-to-columns.js","names":["convertParquetRowGroupToColumns","schema","rowGroup","columns","columnName","data","Object","entries","columnData","values"],"sources":["../../../src/lib/arrow/convert-row-group-to-columns.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetRowGroup} from '@loaders.gl/parquet/parquetjs/schema/declare';\n\nexport function convertParquetRowGroupToColumns(\n schema: Schema,\n rowGroup: ParquetRowGroup\n): Record<string, any[]> {\n const columns: Record<string, any[]> = {};\n for (const [columnName, data] of Object.entries(rowGroup.columnData)) {\n columns[columnName] = columns[columnName] || data.values;\n }\n return columns;\n}\n"],"mappings":"AAOA,OAAO,SAASA,+BAA+BA,CAC7CC,MAAc,EACdC,QAAyB,EACF;EACvB,MAAMC,OAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAM,CAACC,UAAU,EAAEC,IAAI,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,QAAQ,CAACM,UAAU,CAAC,EAAE;IACpEL,OAAO,CAACC,UAAU,CAAC,GAAGD,OAAO,CAACC,UAAU,CAAC,IAAIC,IAAI,CAACI,MAAM;EAC1D;EACA,OAAON,OAAO;AAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-schema-from-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-from-parquet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-schema-from-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-from-parquet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAS,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAgC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAE5D,eAAO,MAAM,oBAAoB,EAAE;KAAE,IAAI,IAAI,WAAW,GAAG,QAAQ;CA+BlE,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,YAAY,GAAG,IAAI,GACnC,MAAM,CAUR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-schema-from-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertParquetSchema","parquetSchema","parquetMetadata","fields","getFields","schema","metadata","getSchemaMetadata","name","field","children","push","type","nullable","optional","getFieldMetadata","arrowField","key","value","stringify","keyValueList","key_value_metadata"],"sources":["../../../src/lib/arrow/convert-schema-from-parquet.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"convert-schema-from-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertParquetSchema","parquetSchema","parquetMetadata","fields","getFields","schema","metadata","getSchemaMetadata","name","field","children","push","type","nullable","optional","getFieldMetadata","arrowField","key","value","stringify","keyValueList","key_value_metadata"],"sources":["../../../src/lib/arrow/convert-schema-from-parquet.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Schema, Field, DataType} from '@loaders.gl/schema';\n\nimport type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {FieldDefinition, ParquetField, ParquetType} from '../../parquetjs/schema/declare';\nimport {FileMetaData} from '../../parquetjs/parquet-thrift';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: DataType} = {\n BOOLEAN: 'bool',\n INT32: 'int32',\n INT64: 'float64',\n INT96: 'float64',\n FLOAT: 'float32',\n DOUBLE: 'float64',\n BYTE_ARRAY: 'binary',\n FIXED_LEN_BYTE_ARRAY: 'binary',\n UTF8: 'utf8',\n DATE: 'int32',\n TIME_MILLIS: 'int64',\n TIME_MICROS: 'int64',\n TIMESTAMP_MILLIS: 'int64',\n TIMESTAMP_MICROS: 'int64',\n UINT_8: 'int32',\n UINT_16: 'uint16',\n UINT_32: 'uint32',\n UINT_64: 'uint64',\n INT_8: 'int8',\n INT_16: 'int16',\n INT_32: 'int32',\n INT_64: 'int64',\n JSON: 'binary',\n BSON: 'binary',\n // TODO check interal type\n INTERVAL: 'binary',\n DECIMAL_INT32: 'float32',\n DECIMAL_INT64: 'float64',\n DECIMAL_BYTE_ARRAY: 'float64',\n DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'\n};\n\nexport function convertParquetSchema(\n parquetSchema: ParquetSchema,\n parquetMetadata: FileMetaData | null\n): Schema {\n const fields = getFields(parquetSchema.schema);\n const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);\n\n const schema: Schema = {\n fields,\n metadata: metadata || {}\n };\n\n return schema;\n}\n\nfunction getFields(schema: FieldDefinition): Field[] {\n const fields: Field[] = [];\n\n for (const name in schema) {\n const field = schema[name];\n\n if (field.fields) {\n const children = getFields(field.fields);\n fields.push({name, type: {type: 'struct', children}, nullable: field.optional});\n } else {\n const type = PARQUET_TYPE_MAPPING[field.type];\n const metadata = getFieldMetadata(field);\n const arrowField = {name, type, nullable: field.optional, metadata};\n fields.push(arrowField);\n }\n }\n\n return fields;\n}\n\nfunction getFieldMetadata(field: ParquetField): Record<string, string> | undefined {\n let metadata: Record<string, string> | undefined;\n\n for (const key in field) {\n if (key !== 'name') {\n let value = field[key] || '';\n value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n metadata = metadata || {};\n metadata[key] = value;\n }\n }\n\n return metadata;\n}\n\nfunction getSchemaMetadata(parquetMetadata: FileMetaData): Record<string, string> | undefined {\n let metadata: Record<string, string> | undefined;\n\n const keyValueList = parquetMetadata.key_value_metadata || [];\n for (const {key, value} of keyValueList) {\n if (typeof value === 'string') {\n metadata = metadata || {};\n metadata[key] = value;\n }\n }\n\n return metadata;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-schema-to-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-to-parquet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-schema-to-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-to-parquet.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,MAAM,EAGN,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,oBAAoB,EAAE;KAAE,IAAI,IAAI,WAAW,GAAG,QAAQ;CA+BlE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-schema-to-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertToParquetSchema","schema","fields","metadata"],"sources":["../../../src/lib/arrow/convert-schema-to-parquet.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"convert-schema-to-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertToParquetSchema","schema","fields","metadata"],"sources":["../../../src/lib/arrow/convert-schema-to-parquet.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// import type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {\n // FieldDefinition, ParquetField,\n ParquetType\n} from '../../parquetjs/schema/declare';\n\nimport {\n Schema,\n // Struct,\n // Field,\n DataType\n} from '@loaders.gl/schema';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: DataType} = {\n BOOLEAN: 'bool',\n INT32: 'int32',\n INT64: 'float64',\n INT96: 'float64',\n FLOAT: 'float32',\n DOUBLE: 'float64',\n BYTE_ARRAY: 'binary',\n FIXED_LEN_BYTE_ARRAY: 'binary',\n UTF8: 'utf8',\n DATE: 'int32',\n TIME_MILLIS: 'int64',\n TIME_MICROS: 'int64',\n TIMESTAMP_MILLIS: 'int64',\n TIMESTAMP_MICROS: 'int64',\n UINT_8: 'int32',\n UINT_16: 'uint16',\n UINT_32: 'uint32',\n UINT_64: 'uint64',\n INT_8: 'int8',\n INT_16: 'int16',\n INT_32: 'int32',\n INT_64: 'int64',\n JSON: 'binary',\n BSON: 'binary',\n // TODO check interval type\n INTERVAL: 'binary',\n DECIMAL_INT32: 'float32',\n DECIMAL_INT64: 'float64',\n DECIMAL_BYTE_ARRAY: 'float64',\n DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'\n};\n\nexport function convertToParquetSchema(schema: Schema): Schema {\n const fields = []; // getFields(schema.fields);\n\n // TODO add metadata if needed.\n return {fields, metadata: {}};\n}\n\n// function getFields(schema: Field[]): Definition[] {\n// const fields: Field[] = [];\n\n// for (const name in schema) {\n// const field = schema[name];\n\n// // @ts-ignore\n// const children = field.children as DataType[];\n// if (children) {\n// const childField = getFields(field.fields);\n// const nestedField = new Field(name, new Struct(childField), field.optional);\n// fields.push(nestedField);\n// } else {\n// const FieldType = PARQUET_TYPE_MAPPING[field.type];\n// const metadata = getFieldMetadata(field);\n// const arrowField = new Field(name, new FieldType(), field.optional, metadata);\n// fields.push(arrowField);\n// }\n// }\n\n// return fields;\n// }\n\n// function getFieldMetadata(field: ParquetField): Map<string, string> {\n// const metadata = new Map();\n\n// for (const key in field) {\n// if (key !== 'name') {\n// const value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n// metadata.set(key, value);\n// }\n// }\n\n// return metadata;\n// }\n"],"mappings":"AAiBA,OAAO,MAAMA,oBAAuD,GAAG;EACrEC,OAAO,EAAE,MAAM;EACfC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,SAAS;EACjBC,UAAU,EAAE,QAAQ;EACpBC,oBAAoB,EAAE,QAAQ;EAC9BC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,OAAO;EACbC,WAAW,EAAE,OAAO;EACpBC,WAAW,EAAE,OAAO;EACpBC,gBAAgB,EAAE,OAAO;EACzBC,gBAAgB,EAAE,OAAO;EACzBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,QAAQ;EAEdC,QAAQ,EAAE,QAAQ;EAClBC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,SAAS;EACxBC,kBAAkB,EAAE,SAAS;EAC7BC,4BAA4B,EAAE;AAChC,CAAC;AAED,OAAO,SAASC,sBAAsBA,CAACC,MAAc,EAAU;EAC7D,MAAMC,MAAM,GAAG,EAAE;EAGjB,OAAO;IAACA,MAAM;IAAEC,QAAQ,EAAE,CAAC;EAAC,CAAC;AAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-parquet-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-parquet-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AAIpE,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-parquet-schema.js","names":["convertParquetSchema","unpackGeoMetadata","unpackJSONStringMetadata","getSchemaFromParquetReader","reader","parquetSchema","getSchema","parquetMetadata","getFileMetadata","schema"],"sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"sourcesContent":["// loaders.gl\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {unpackGeoMetadata, unpackJSONStringMetadata} from '@loaders.gl/gis';\n\nexport async function getSchemaFromParquetReader(reader: ParquetReader): Promise<Schema> {\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n unpackJSONStringMetadata(schema, 'pandas');\n return schema;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-parquet-schema.js","names":["convertParquetSchema","unpackGeoMetadata","unpackJSONStringMetadata","getSchemaFromParquetReader","reader","parquetSchema","getSchema","parquetMetadata","getFileMetadata","schema"],"sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// loaders.gl\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {unpackGeoMetadata, unpackJSONStringMetadata} from '@loaders.gl/gis';\n\nexport async function getSchemaFromParquetReader(reader: ParquetReader): Promise<Schema> {\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n unpackJSONStringMetadata(schema, 'pandas');\n return schema;\n}\n"],"mappings":"SAOQA,oBAAoB;AAC5B,SAAQC,iBAAiB,EAAEC,wBAAwB,QAAO,iBAAiB;AAE3E,OAAO,eAAeC,0BAA0BA,CAACC,MAAqB,EAAmB;EACvF,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAC9C,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,eAAe,CAAC,CAAC;EACtD,MAAMC,MAAM,GAAGT,oBAAoB,CAACK,aAAa,EAAEE,eAAe,CAAC;EACnEN,iBAAiB,CAACQ,MAAM,CAAC;EACzBP,wBAAwB,CAACO,MAAM,EAAE,QAAQ,CAAC;EAC1C,OAAOA,MAAM;AACf"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { GeoJSONTable, GeoJSONTableBatch, ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
|
|
3
|
+
import type { ParquetLoaderOptions } from '../../parquet-loader';
|
|
4
|
+
export declare function parseGeoParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable | GeoJSONTable>;
|
|
5
|
+
export declare function parseGeoParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch | GeoJSONTableBatch>;
|
|
6
|
+
//# sourceMappingURL=parse-geoparquet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-geoparquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-geoparquet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,CAIxC;AAED,wBAAuB,4BAA4B,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,CAOxD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { convertWKBTableToGeoJSON } from '@loaders.gl/gis';
|
|
2
|
+
import { WKTLoader, WKBLoader } from '@loaders.gl/wkt';
|
|
3
|
+
import { parseParquetFile, parseParquetFileInBatches } from "./parse-parquet.js";
|
|
4
|
+
export async function parseGeoParquetFile(file, options) {
|
|
5
|
+
var _options$parquet;
|
|
6
|
+
const table = await parseParquetFile(file, {
|
|
7
|
+
...options,
|
|
8
|
+
shape: 'object-row-table'
|
|
9
|
+
});
|
|
10
|
+
const shape = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.shape;
|
|
11
|
+
return convertTable(table, shape);
|
|
12
|
+
}
|
|
13
|
+
export async function* parseGeoParquetFileInBatches(file, options) {
|
|
14
|
+
const tableBatches = parseParquetFileInBatches(file, {
|
|
15
|
+
...options,
|
|
16
|
+
shape: 'object-row-table'
|
|
17
|
+
});
|
|
18
|
+
for await (const batch of tableBatches) {
|
|
19
|
+
var _options$parquet2;
|
|
20
|
+
const shape = options === null || options === void 0 ? void 0 : (_options$parquet2 = options.parquet) === null || _options$parquet2 === void 0 ? void 0 : _options$parquet2.shape;
|
|
21
|
+
yield convertBatch(batch, shape);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function convertTable(objectRowTable, shape) {
|
|
25
|
+
switch (shape) {
|
|
26
|
+
case 'object-row-table':
|
|
27
|
+
return objectRowTable;
|
|
28
|
+
case 'geojson-table':
|
|
29
|
+
try {
|
|
30
|
+
return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema, [WKTLoader, WKBLoader]);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return objectRowTable;
|
|
33
|
+
}
|
|
34
|
+
default:
|
|
35
|
+
throw new Error(shape);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function convertBatch(objectRowBatch, shape) {
|
|
39
|
+
switch (shape) {
|
|
40
|
+
case 'object-row-table':
|
|
41
|
+
return objectRowBatch;
|
|
42
|
+
case 'geojson-table':
|
|
43
|
+
try {
|
|
44
|
+
const geojsonTable = convertWKBTableToGeoJSON(objectRowBatch, objectRowBatch.schema, [WKTLoader, WKBLoader]);
|
|
45
|
+
return {
|
|
46
|
+
...objectRowBatch,
|
|
47
|
+
...geojsonTable
|
|
48
|
+
};
|
|
49
|
+
} catch (error) {
|
|
50
|
+
return objectRowBatch;
|
|
51
|
+
}
|
|
52
|
+
default:
|
|
53
|
+
throw new Error(shape);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=parse-geoparquet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-geoparquet.js","names":["convertWKBTableToGeoJSON","WKTLoader","WKBLoader","parseParquetFile","parseParquetFileInBatches","parseGeoParquetFile","file","options","_options$parquet","table","shape","parquet","convertTable","parseGeoParquetFileInBatches","tableBatches","batch","_options$parquet2","convertBatch","objectRowTable","schema","error","Error","objectRowBatch","geojsonTable"],"sources":["../../../src/lib/parsers/parse-geoparquet.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {\n GeoJSONTable,\n GeoJSONTableBatch,\n ObjectRowTable,\n ObjectRowTableBatch\n} from '@loaders.gl/schema';\nimport {convertWKBTableToGeoJSON} from '@loaders.gl/gis';\nimport {WKTLoader, WKBLoader} from '@loaders.gl/wkt';\n\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\n\nimport {parseParquetFile, parseParquetFileInBatches} from './parse-parquet';\n\nexport async function parseGeoParquetFile(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ObjectRowTable | GeoJSONTable> {\n const table = await parseParquetFile(file, {...options, shape: 'object-row-table'});\n const shape = options?.parquet?.shape;\n return convertTable(table, shape);\n}\n\nexport async function* parseGeoParquetFileInBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ObjectRowTableBatch | GeoJSONTableBatch> {\n const tableBatches = parseParquetFileInBatches(file, {...options, shape: 'object-row-table'});\n\n for await (const batch of tableBatches) {\n const shape = options?.parquet?.shape;\n yield convertBatch(batch, shape);\n }\n}\n\nfunction convertTable(\n objectRowTable: ObjectRowTable,\n shape?: 'object-row-table' | 'geojson-table'\n): ObjectRowTable | GeoJSONTable {\n switch (shape) {\n case 'object-row-table':\n return objectRowTable;\n\n case 'geojson-table':\n try {\n return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema!, [\n WKTLoader,\n WKBLoader\n ]);\n } catch (error) {\n return objectRowTable;\n }\n\n default:\n throw new Error(shape);\n }\n}\n\nfunction convertBatch(\n objectRowBatch: ObjectRowTableBatch,\n shape?: 'object-row-table' | 'geojson-table'\n): ObjectRowTableBatch | GeoJSONTableBatch {\n switch (shape) {\n case 'object-row-table':\n return objectRowBatch;\n\n case 'geojson-table':\n try {\n const geojsonTable = convertWKBTableToGeoJSON(objectRowBatch, objectRowBatch.schema!, [\n WKTLoader,\n WKBLoader\n ]);\n return {\n ...objectRowBatch,\n ...geojsonTable\n };\n } catch (error) {\n return objectRowBatch;\n }\n\n default:\n throw new Error(shape);\n }\n}\n"],"mappings":"AAWA,SAAQA,wBAAwB,QAAO,iBAAiB;AACxD,SAAQC,SAAS,EAAEC,SAAS,QAAO,iBAAiB;AAAC,SAI7CC,gBAAgB,EAAEC,yBAAyB;AAEnD,OAAO,eAAeC,mBAAmBA,CACvCC,IAAkB,EAClBC,OAA8B,EACU;EAAA,IAAAC,gBAAA;EACxC,MAAMC,KAAK,GAAG,MAAMN,gBAAgB,CAACG,IAAI,EAAE;IAAC,GAAGC,OAAO;IAAEG,KAAK,EAAE;EAAkB,CAAC,CAAC;EACnF,MAAMA,KAAK,GAAGH,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEI,OAAO,cAAAH,gBAAA,uBAAhBA,gBAAA,CAAkBE,KAAK;EACrC,OAAOE,YAAY,CAACH,KAAK,EAAEC,KAAK,CAAC;AACnC;AAEA,OAAO,gBAAgBG,4BAA4BA,CACjDP,IAAkB,EAClBC,OAA8B,EAC0B;EACxD,MAAMO,YAAY,GAAGV,yBAAyB,CAACE,IAAI,EAAE;IAAC,GAAGC,OAAO;IAAEG,KAAK,EAAE;EAAkB,CAAC,CAAC;EAE7F,WAAW,MAAMK,KAAK,IAAID,YAAY,EAAE;IAAA,IAAAE,iBAAA;IACtC,MAAMN,KAAK,GAAGH,OAAO,aAAPA,OAAO,wBAAAS,iBAAA,GAAPT,OAAO,CAAEI,OAAO,cAAAK,iBAAA,uBAAhBA,iBAAA,CAAkBN,KAAK;IACrC,MAAMO,YAAY,CAACF,KAAK,EAAEL,KAAK,CAAC;EAClC;AACF;AAEA,SAASE,YAAYA,CACnBM,cAA8B,EAC9BR,KAA4C,EACb;EAC/B,QAAQA,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAOQ,cAAc;IAEvB,KAAK,eAAe;MAClB,IAAI;QACF,OAAOlB,wBAAwB,CAACkB,cAAc,EAAEA,cAAc,CAACC,MAAM,EAAG,CACtElB,SAAS,EACTC,SAAS,CACV,CAAC;MACJ,CAAC,CAAC,OAAOkB,KAAK,EAAE;QACd,OAAOF,cAAc;MACvB;IAEF;MACE,MAAM,IAAIG,KAAK,CAACX,KAAK,CAAC;EAC1B;AACF;AAEA,SAASO,YAAYA,CACnBK,cAAmC,EACnCZ,KAA4C,EACH;EACzC,QAAQA,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAOY,cAAc;IAEvB,KAAK,eAAe;MAClB,IAAI;QACF,MAAMC,YAAY,GAAGvB,wBAAwB,CAACsB,cAAc,EAAEA,cAAc,CAACH,MAAM,EAAG,CACpFlB,SAAS,EACTC,SAAS,CACV,CAAC;QACF,OAAO;UACL,GAAGoB,cAAc;UACjB,GAAGC;QACL,CAAC;MACH,CAAC,CAAC,OAAOH,KAAK,EAAE;QACd,OAAOE,cAAc;MACvB;IAEF;MACE,MAAM,IAAID,KAAK,CAACX,KAAK,CAAC;EAC1B;AACF"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
|
|
2
2
|
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
3
3
|
import type { ParquetLoaderOptions } from '../../parquet-loader';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated
|
|
6
|
+
*/
|
|
4
7
|
export declare function parseParquetFileInColumns(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ColumnarTable>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated
|
|
10
|
+
*/
|
|
5
11
|
export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
|
|
6
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":"
|
|
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,MAAM,sBAAsB,CAAC;AAQ/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAanC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-parquet-to-columns.js","names":["ParquetReader","materializeColumns","getSchemaFromParquetReader","installBufferPolyfill","parseParquetFileInColumns","file","options","batch","parseParquetFileInColumnarBatches","shape","schema","data","Error","reader","parquetSchema","getSchema","rowGroups","rowGroupIterator","parquet","rowGroup","convertRowGroupToTableBatch","batchType","length","rowCount"],"sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-columns.js","names":["ParquetReader","materializeColumns","getSchemaFromParquetReader","installBufferPolyfill","parseParquetFileInColumns","file","options","batch","parseParquetFileInColumnarBatches","shape","schema","data","Error","reader","parquetSchema","getSchema","rowGroups","rowGroupIterator","parquet","rowGroup","convertRowGroupToTableBatch","batchType","length","rowCount"],"sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetRowGroup} from '../../parquetjs/schema/declare';\nimport {ParquetSchema} from '../../parquetjs/schema/schema';\nimport {materializeColumns} from '../../parquetjs/schema/shred';\nimport {getSchemaFromParquetReader} from './get-parquet-schema';\nimport {installBufferPolyfill} from '../../polyfills/buffer';\n\n/**\n * @deprecated\n */\nexport async function parseParquetFileInColumns(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ColumnarTable> {\n installBufferPolyfill();\n for await (const batch of parseParquetFileInColumnarBatches(file, options)) {\n return {\n shape: 'columnar-table',\n schema: batch.schema,\n data: batch.data\n };\n }\n throw new Error('empty table');\n}\n\n/**\n * @deprecated\n */\nexport async function* parseParquetFileInColumnarBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const reader = new ParquetReader(file);\n\n // Extract schema and geo metadata\n const schema = await getSchemaFromParquetReader(reader);\n\n const parquetSchema = await reader.getSchema();\n\n // Iterate over row batches\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);\n }\n}\n\nfunction convertRowGroupToTableBatch(\n rowGroup: ParquetRowGroup,\n parquetSchema: ParquetSchema,\n schema: Schema\n): ColumnarTableBatch {\n // const data = convertParquetRowGroupToColumns(schema, rowGroup);\n const data = materializeColumns(parquetSchema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"SAOQA,aAAa;AAAA,SAGbC,kBAAkB;AAAA,SAClBC,0BAA0B;AAAA,SAC1BC,qBAAqB;AAK7B,OAAO,eAAeC,yBAAyBA,CAC7CC,IAAkB,EAClBC,OAA8B,EACN;EACxBH,qBAAqB,CAAC,CAAC;EACvB,WAAW,MAAMI,KAAK,IAAIC,iCAAiC,CAACH,IAAI,EAAEC,OAAO,CAAC,EAAE;IAC1E,OAAO;MACLG,KAAK,EAAE,gBAAgB;MACvBC,MAAM,EAAEH,KAAK,CAACG,MAAM;MACpBC,IAAI,EAAEJ,KAAK,CAACI;IACd,CAAC;EACH;EACA,MAAM,IAAIC,KAAK,CAAC,aAAa,CAAC;AAChC;AAKA,OAAO,gBAAgBJ,iCAAiCA,CACtDH,IAAkB,EAClBC,OAA8B,EACK;EACnC,MAAMO,MAAM,GAAG,IAAIb,aAAa,CAACK,IAAI,CAAC;EAGtC,MAAMK,MAAM,GAAG,MAAMR,0BAA0B,CAACW,MAAM,CAAC;EAEvD,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAG9C,MAAMC,SAAS,GAAGH,MAAM,CAACI,gBAAgB,CAACX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,OAAO,CAAC;EAC3D,WAAW,MAAMC,QAAQ,IAAIH,SAAS,EAAE;IACtC,MAAMI,2BAA2B,CAACD,QAAQ,EAAEL,aAAa,EAAEJ,MAAM,CAAC;EACpE;AACF;AAEA,SAASU,2BAA2BA,CAClCD,QAAyB,EACzBL,aAA4B,EAC5BJ,MAAc,EACM;EAEpB,MAAMC,IAAI,GAAGV,kBAAkB,CAACa,aAAa,EAAEK,QAAQ,CAAC;EACxD,OAAO;IACLV,KAAK,EAAE,gBAAgB;IACvBY,SAAS,EAAE,MAAM;IACjBX,MAAM;IACNC,IAAI;IACJW,MAAM,EAAEH,QAAQ,CAACI;EACnB,CAAC;AACH"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
|
|
3
|
+
import type { ParquetLoaderOptions } from '../../parquet-loader';
|
|
4
|
+
/**
|
|
5
|
+
* * Parse a parquet file using parquetjs
|
|
6
|
+
* @param file
|
|
7
|
+
* @param options
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable>;
|
|
11
|
+
/**
|
|
12
|
+
* Parse a parquet file in batches using parquetjs
|
|
13
|
+
* @param file
|
|
14
|
+
* @param options
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch>;
|
|
17
|
+
//# sourceMappingURL=parse-parquet.d.ts.map
|
|
@@ -0,0 +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,MAAM,sBAAsB,CAAC;AAM/D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CAuBpC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { convertWKBTableToGeoJSON } from '@loaders.gl/gis';
|
|
2
|
-
import { WKTLoader, WKBLoader } from '@loaders.gl/wkt';
|
|
3
1
|
import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
|
|
4
2
|
import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
|
|
5
3
|
import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
|
|
@@ -54,13 +52,9 @@ function convertTable(objectRowTable, shape) {
|
|
|
54
52
|
case 'object-row-table':
|
|
55
53
|
return objectRowTable;
|
|
56
54
|
case 'geojson-table':
|
|
57
|
-
|
|
58
|
-
return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema, [WKTLoader, WKBLoader]);
|
|
59
|
-
} catch (error) {
|
|
60
|
-
return objectRowTable;
|
|
61
|
-
}
|
|
55
|
+
return objectRowTable;
|
|
62
56
|
default:
|
|
63
57
|
throw new Error(shape);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
|
-
//# sourceMappingURL=parse-parquet
|
|
60
|
+
//# sourceMappingURL=parse-parquet.js.map
|