Reading files

There are a couple of functions mainly designed for DuckDB to read from files:

PRQL

prql target:sql.duckdb

from (read_parquet "artists.parquet")
join (read_csv "albums.csv") (==track_id)

SQL

WITH table_0 AS (
  SELECT
    *
  FROM
    read_parquet('artists.parquet')
),
table_1 AS (
  SELECT
    *
  FROM
    read_csv_auto('albums.csv')
)
SELECT
  table_0.*,
  table_1.*
FROM
  table_0
  JOIN table_1 ON table_0.track_id = table_1.track_id

Note

These don’t currently have all the DuckDB options. If those would be helpful, please log an issue and it’s a fairly easy addition.

Info

We may be able to reduce the boilerplate WITH table_x AS SELECT * FROM... in future versions.

When specifying file names directly in the FROM clause without using functions, which is allowed in DuckDB, enclose the file names in backticks `` as follows:

PRQL

from `artists.parquet`

SQL

SELECT
  *
FROM
  "artists.parquet"

See also