Skip to main content

DuckDB plugin for Intake

Project description

Intake-DuckDB

Build Status Documentation Status

DuckDB Plugin for Intake

Installation

From PyPI

pip install intake-duckdb

Or conda-forge

conda install -c conda-forge intake-duckdb

Usage

Load an entire table into a dataframe

source = intake.open_duckdb("path/to/dbfile", "tablename")
df = source.read()

Or a custom SQL in valid DuckDB query syntax

source = intake.open_duckdb("path/to/dbfile", "SELECT col1, col2 FROM tablename")
df = source.read()

Can also iterate over table chunks

source_chunked = intake.open_duckdb("path/to/dbfile", "tablename", chunks=10)
source_chunked.discover()
for chunk in source_chunked.read_chunked():
    # do something
    ...

DuckDB catalog: create an Intake catalog from a DuckDB backend

cat = intake.open_duckdb_cat("path/to/dbfile")

# list the sources in 'cat'
list(cat)

df = cat["tablename"].read()
df_chunks = [chunk for chunk in cat["tablename"](chunks=10).read_chunked()]

Run DuckDB queries on other Intake sources (that produce pandas DataFrames) within the same catalog

# cat.yaml
sources:
  csv_source:
    args:
      urlpath: https://data.csv
    description: Remote CSV source
    driver: csv

  duck_source:
    args:
      targets:
        - csv_source
      sql_expr: SELECT col FROM csv_source LIMIT 10
    description: Source referencing other sources in catalog
    driver: duckdb_transform
cat  = intake.open_catalog("cat.yaml")
duck_source = cat.duck_source.read()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intake-duckdb-0.1.2.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

intake_duckdb-0.1.2-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file intake-duckdb-0.1.2.tar.gz.

File metadata

  • Download URL: intake-duckdb-0.1.2.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for intake-duckdb-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7c395b8c5fb8bf1f9765e9481b81df8092d05d2fca991100e7b9ee0f7f03d5c4
MD5 036d276e9c4a42ea4be9cea8cd0bf6db
BLAKE2b-256 12d8c0f699275b203fff063575db365c5c4f975fe96dc89f3436628163b1dde7

See more details on using hashes here.

File details

Details for the file intake_duckdb-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for intake_duckdb-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0897f57eae10ad9b1f1f573ca80dff02ed8cf2ebf8e45736093f981416efb43e
MD5 f5c4059ad854080467c778407be0a884
BLAKE2b-256 2341dd3031b3a834ff8723ffdcd0430a30a253f75c1cc64de719652e9290d675

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page