{"id":23192,"library":"adbc-driver-snowflake","title":"ADBC Snowflake Driver","description":"An ADBC (Arrow Database Connectivity) driver for Snowflake, enabling high-performance data transfer using Apache Arrow. Version 1.11.0 requires Python >=3.10.","status":"active","version":"1.11.0","language":"python","source_language":"en","source_url":"https://github.com/apache/arrow-adbc","tags":["adbc","snowflake","arrow","database","driver"],"install":[{"cmd":"pip install adbc-driver-snowflake","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"Required for Arrow data handling and ADBC interface","package":"pyarrow","optional":false},{"reason":"Often needed to manage driver loading","package":"adbc-driver-manager","optional":true}],"imports":[{"note":"Wrong submodule path; top-level import provides dbapi via adbc_driver_snowflake.dbapi","wrong":"import adbc_driver_snowflake.dbapi","symbol":"adbc_driver_snowflake","correct":"import adbc_driver_snowflake"}],"quickstart":{"code":"import adbc_driver_snowflake.dbapi\nconn = adbc_driver_snowflake.dbapi.connect(\n    'snowflake://user:pass@account/database/schema?warehouse=warehouse_name'\n)\ncur = conn.cursor()\ncur.execute(\"SELECT 1 AS col\")\nprint(cur.fetch_arrow_batch().to_pandas())","lang":"python","description":"Connect to Snowflake using ADBC and fetch an Arrow batch converted to pandas."},"warnings":[{"fix":"Use from adbc_driver_snowflake import dbapi, then dbapi.connect()","message":"The driver is not a DB-API 2.0 module directly; you must use the .dbapi submodule. Direct import of adbc_driver_snowflake does not expose connect()","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Append ?warehouse=my_wh to the Snowflake URL.","message":"Connection string must include warehouse as a query parameter; omitted warehouse may lead to errors about virtual warehouse not specified.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use .fetch_arrow_batch() or .fetch_arrow_table() for pandas conversion.","message":"The driver only supports Arrow data; fetching results via .fetchall() returns a list of Arrow arrays, not plain Python objects. Use fetch_arrow_batch() to get a RecordBatch.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use: from adbc_driver_snowflake import dbapi; conn = dbapi.connect(...)","cause":"Trying to import connect from the top-level module instead of submodule dbapi.","error":"ImportError: cannot import name 'connect' from 'adbc_driver_snowflake'"},{"fix":"pip install adbc-driver-manager adbc-driver-snowflake","cause":"Missing ADBC driver manager or incorrect installation of the Snowflake driver.","error":"Exception: No suitable driver found"},{"fix":"Ensure Snowflake columns are typed appropriately; use CAST in SQL if needed.","cause":"Incompatible schema or types between Snowflake and Arrow; often due to NULL handling.","error":"pyarrow.lib.ArrowNotImplementedError: Unsupported cast from string to int64 using function cast"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}