Parquet.Document
A Parquet file as a table, its columns typed as the file stores them.
Group: Files and documents. Power Query M has it too: a query that uses it is written as in Power BI.
Syntax
Parquet.Document(binary as binary, optional options as nullable record) as table
| Parameter | Type | Description |
|---|---|---|
binary | binary | The file: File.Contents of a path, or Web.Contents of an address. |
options | nullable record optional | Accepted as Power Query writes it; none is read. |
Returns
table. The file's rows and columns.
Remarks
- DuckDB reads the file, so the steps after it fold into its SQL: a filter or a choice of columns reads only what it needs from the file.
- Whole numbers come as whole numbers, decimals as numbers, dates as dates, timestamps as datetimes (or datetimezones for UTC timestamps) and strings as texts.
- Signed-in sources work too: a blob of
AzureStorage.BlobsorAzureStorage.BlobContentsis fetched with its sign-in, then read.
Compared with Power Query
The binary must be a file's or an address's (File.Contents, Web.Contents, a blob): Parquet bytes made in M, with Binary.FromText say, are refused with a message. Power Query reads any binary.
Examples
A Parquet file
Parquet.Document(File.Contents("C:\Data\orders.parquet"))
| OrderId | Shop | Product | OrderDate | Amount |
|---|---|---|---|---|
| 1001 | Oslo | Chair | 2026-01-05 | 120 |
| 1002 | Bergen | Desk | 2026-01-12 | 250 |
| 1003 | Oslo | Lamp | 2026-02-03 | 45.5 |
| 1004 | Trondheim | Chair | 2026-02-17 | 120 |
| 1005 | Bergen | Lamp | 2026-03-02 | 45.5 |
A filter that folds into the read
Table.SelectRows(Parquet.Document(File.Contents("C:\Data\orders.parquet")), each [Shop] = "Oslo")[[OrderId], [Amount]]
| OrderId | Amount |
|---|---|
| 1001 | 120 |
| 1003 | 45.5 |
Related functions
File.Contents, DeltaLake.Table, Table.SelectRows, DuckDB.Query.