| import duckdb | |
| from huggingface_hub import HfFileSystem | |
| def setup_duckdb_hf_connection(): | |
| """ | |
| Registers the Hugging Face filesystem with DuckDB to enable | |
| 'hf://' URI support for querying data. | |
| """ | |
| try: | |
| hf_fs = HfFileSystem() | |
| duckdb.register_filesystem(hf_fs) | |
| print("Successfully registered HfFileSystem with DuckDB.") | |
| return True | |
| except Exception as e: | |
| print(f"Failed to register HfFileSystem: {e}") | |
| return False | |
| def query_hf_data(query: str): | |
| """ | |
| Executes a SQL query against Hugging Face data using DuckDB. | |
| """ | |
| setup_duckdb_hf_connection() | |
| try: | |
| result = duckdb.sql(query).df() | |
| return result | |
| except Exception as e: | |
| print(f"Error executing query: {e}") | |
| return None | |
| if __name__ == "__main__": | |
| # Example usage: | |
| # query = "SELECT * FROM 'hf://datasets/Brettapps/my-bucket/data.parquet' LIMIT 10" | |
| # df = query_hf_data(query) | |
| # print(df) | |
| pass | |