{"id":7650,"library":"qds-sdk","title":"Qubole Data Service SDK (qds-sdk)","description":"The Qubole Data Service (QDS) Python SDK provides a programmatic interface for interacting with the Qubole Data Service API, allowing users to manage clusters, submit commands (e.g., Hive, Spark, Presto), and access query results. The library is actively maintained, with version 1.17.0 being the latest, and typically sees several releases per year to add features and ensure compatibility.","status":"active","version":"1.17.0","language":"python","source_language":"en","source_url":"https://github.com/qubole/qds-sdk-py","tags":["qubole","data-platform","cloud","api-client","big-data","etl"],"install":[{"cmd":"pip install qds-sdk==1.17.0","lang":"bash","label":"Install specific version"},{"cmd":"pip install qds-sdk","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Date and time utilities for API interactions.","package":"python-dateutil"},{"reason":"Used for string inflections (e.g., singular/plural forms in API object names).","package":"inflection"},{"reason":"HTTP client for making API requests to Qubole.","package":"requests"},{"reason":"Python 2 and 3 compatibility utilities, though Python 2.x support is largely dropped in recent versions.","package":"six"}],"imports":[{"wrong":"import qds_sdk","symbol":"qds_sdk","correct":"import qds_sdk"}],"quickstart":{"code":"import os\nfrom qds_sdk.commands import HiveCommand\nfrom qds_sdk import qds\n\n# Configure Qubole API token and endpoint\nqds.set_api_token(os.environ.get('QDS_API_TOKEN', ''))\nqds.set_api_url(os.environ.get('QDS_API_URL', 'https://api.qubole.com/api/v1.2'))\n\n# Define and execute a Hive command\nhive_command = HiveCommand.create(\n    query='SELECT 1 + 1 AS result;',\n    cluster_id=os.environ.get('QDS_CLUSTER_ID', None) # Use an existing cluster ID or name\n)\n\nprint(f\"Submitted Hive Command ID: {hive_command.id}\")\n\n# Wait for command completion (optional, for synchronous execution)\nstatus = HiveCommand.wait_for_completion(hive_command.id)\nprint(f\"Command {hive_command.id} finished with status: {status}\")\n\n# Fetch results\nif status == 'done':\n    result = HiveCommand.get_results(hive_command.id)\n    print(\"Query Result:\")\n    print(result)","lang":"python","description":"This quickstart demonstrates how to configure the Qubole SDK with API credentials and submit a simple Hive command. It requires setting `QDS_API_TOKEN` and `QDS_API_URL` as environment variables, and optionally `QDS_CLUSTER_ID` for targeting a specific cluster. The example submits a query, waits for its completion, and then fetches the results."},"warnings":[{"fix":"Upgrade to Python 2.7+ or preferably Python 3.6+ for continued support and security updates. For Python 2.x users, explicitly install `qds-sdk<1.13.1` if upgrading Python is not an option.","message":"Support for Python 2.6 was dropped. Users on older Python 2.x versions might encounter compatibility issues or errors.","severity":"breaking","affected_versions":"<=1.13.1"},{"fix":"Ensure your AWS S3 buckets and configurations support Signature Version V4. If encountering S3 authentication issues, check your Qubole cluster S3 settings and potentially AWS IAM policies.","message":"The default S3 Signature Version for API requests changed to V4. This might affect interactions with older S3 buckets or specific S3 endpoints that only support V2 signatures.","severity":"breaking","affected_versions":">=1.12.0"},{"fix":"Upgrade to `qds-sdk==1.17.0` or newer when using Python 3.12 to ensure full compatibility and avoid unexpected behavior.","message":"Versions prior to 1.17.0 might have compatibility issues or syntax warnings when running on Python 3.12 due to deprecated constructs and third-party library changes.","severity":"gotcha","affected_versions":"<1.17.0"},{"fix":"Always refer to the latest QDS SDK documentation or `help()` for specific command/resource creation methods to understand required and optional parameters. Be mindful of new parameters that might become mandatory or change default behavior in future releases.","message":"API commands and resources frequently receive new parameters (e.g., `--upload-to-source` for JupyterNotebookCommand). While usually additions, incorrect usage or assumptions about default behavior can lead to errors.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"search_vec":"'1.17.0':49 'access':39 'activ':45 'add':61 'allow':27 'api':26,72 'api-cli':71 'big':75 'big-data':74 'client':73 'cloud':70 'cluster':31 'command':33 'compat':65 'data':2,10,24,68,76 'data-platform':67 'e.g':34 'ensur':64 'etl':77 'featur':62 'hive':35 'interact':20 'interfac':18 'latest':52 'librari':43 'maintain':46 'manag':30 'per':58 'platform':69 'presto':37 'programmat':17 'provid':15 'python':13 'qds':6,12 'qds-sdk':5 'qubol':1,9,23,66 'queri':40 'releas':57 'result':41 'sdk':4,7,14 'see':55 'servic':3,11,25 'sever':56 'spark':36 'submit':32 'typic':54 'user':28 'version':48 'year':59","created_at":"2026-04-16T14:07:28.773357+00:00","updated_at":"2026-04-16T14:07:28.773357+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.17.0","cli_name":"","cli_version":null,"type":"library","homepage":"https://www.qubole.com","github":"https://github.com/qubole/qds-sdk-py","docs":null,"changelog":null,"pypi":"https://pypi.org/project/qds-sdk/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","devops","aws"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}