11import { DataFrame , DataFrameEvents , ResolvedValue , UnsortableDataFrame , createEventTarget , sortableDataFrame } from 'hightable'
22import type { ColumnData } from 'hyparquet'
3- import { FileMetaData , parquetSchema } from 'hyparquet'
3+ import { FileMetaData , ParquetReadOptions , parquetSchema } from 'hyparquet'
44import { parquetReadWorker } from './workers/parquetWorkerClient.js'
55import type { AsyncBufferFrom } from './workers/types.d.ts'
66
@@ -21,7 +21,7 @@ interface VirtualRowGroup {
2121/**
2222 * Convert a parquet file into a dataframe.
2323 */
24- export function parquetDataFrame ( from : AsyncBufferFrom , metadata : FileMetaData ) : DataFrame {
24+ export function parquetDataFrame ( from : AsyncBufferFrom , metadata : FileMetaData , options ?: Pick < ParquetReadOptions , 'utf8' > ) : DataFrame {
2525 const { children } = parquetSchema ( metadata )
2626 const header = children . map ( child => child . element . name )
2727 const eventTarget = createEventTarget < DataFrameEvents > ( )
@@ -54,7 +54,7 @@ export function parquetDataFrame(from: AsyncBufferFrom, metadata: FileMetaData):
5454
5555 // TODO(SL): pass AbortSignal to the worker?
5656 if ( columnsToFetch . length > 0 ) {
57- const commonPromise = parquetReadWorker ( { from, metadata, rowStart : groupStart , rowEnd : groupEnd , columns : columnsToFetch , onChunk } )
57+ const commonPromise = parquetReadWorker ( { ... options , from, metadata, rowStart : groupStart , rowEnd : groupEnd , columns : columnsToFetch , onChunk } )
5858 columnsToFetch . forEach ( column => {
5959 state . set ( column , { kind : 'fetching' , promise : commonPromise } )
6060 } )
0 commit comments