mirror of
https://github.com/asadbek064/hyparquet.git
synced 2026-01-07 03:26:38 +00:00
Fix out of order columns in onComplete
This commit is contained in:
parent
1885c96c53
commit
58a6b963a1
14
src/read.js
14
src/read.js
@ -110,8 +110,6 @@ export async function readRowGroup(options, rowGroup, groupStart, rowLimit) {
|
||||
groupBuffer = await file.slice(groupStartByte, groupEndByte)
|
||||
}
|
||||
|
||||
/** @type {any[][]} */
|
||||
const groupColumnData = []
|
||||
const promises = []
|
||||
// Top-level columns to assemble
|
||||
const { children } = getSchemaPath(metadata.schema, [])[0]
|
||||
@ -182,14 +180,20 @@ export async function readRowGroup(options, rowGroup, groupStart, rowLimit) {
|
||||
rowStart: groupStart,
|
||||
rowEnd: groupStart + columnData.length,
|
||||
})
|
||||
// save column data only if onComplete is defined
|
||||
if (options.onComplete) groupColumnData.push(columnData)
|
||||
}))
|
||||
}
|
||||
await Promise.all(promises)
|
||||
if (options.onComplete) {
|
||||
// transpose columns into rows
|
||||
return groupColumnData[0].map((_, row) => groupColumnData.map(col => col[row]))
|
||||
const groupData = new Array(rowLimit)
|
||||
const includedColumns = children
|
||||
.map(child => child.element.name)
|
||||
.filter(name => !columns || columns.includes(name))
|
||||
.map(name => subcolumnData.get(name))
|
||||
for (let row = 0; row < rowLimit; row++) {
|
||||
groupData[row] = includedColumns.map(column => column[row])
|
||||
}
|
||||
return groupData
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user