Skip to main content

A package interact with Hive Server 2 via the Thrift protocol

Project description

This project aims to be an up to date Python client to interact with Hive Server 2 using the Thrift protocol.

The project is heavily inspired by PyHive up to the point that part of the code has been snatched from there. See Differences for more.

Installation

Install it with pip install hs2client or directly from source

python setup.py install

Usage

Using it from Python is simple:

from hs2client.hs2client import HS2Client

client = HS2Client(host='127.0.0.1', username='user', port=10000, auth='NONE')

with client as connection, connection.cursor() as cursor:
    cursor.arraysize = 10
    cursor.execute('select * from table')
    for row in cursor:
        print(row)

Regenerate the Python thrift library

The hs2client.py is just a thin wrapper around the generated Python code to interact with Hive Server 2 through the Thrift protocol.

To regenerate the code using a newer version of the .thrift files, you can use generate.py (note: you need to have thrift installed, see here)

python generate.py --help

Usage: generate.py [OPTIONS]

Options:
  --hive_server2_url TEXT The URL where the TCLIService.thrift file can be downloaded
  --package TEXT          The package where the client should be placed
  --subpackage TEXT       The subpackage where the client should be placed
  --help                  Show this message and exit.

Otherwise the defaults will be used.

Differences with PyHive

  • This pakcage lacks the sqlalchemy and the presto part;

  • The main class, HS2Client inherits from TCLIService.Client, making certain things handier;

  • In cases where authentication is NONE, the username is set to mr.who to avoid issues with the latest Hive Server 2 versions;

  • Thrift 0.11 has been used to generate the Python files;

  • The generate.py file allows to easily update the files generated from the thrift specs.

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

hs2client-0.1.1.tar.gz (30.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hs2client-0.1.1-py3.6.egg (84.3 kB view details)

Uploaded Egg

hs2client-0.1.1-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

hs2client-0.1.1-py2.7.egg (80.3 kB view details)

Uploaded Egg

File details

Details for the file hs2client-0.1.1.tar.gz.

File metadata

  • Download URL: hs2client-0.1.1.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hs2client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 45407ae190e60141b5d9bc10a0253de4650aa6f2652506ec3ef895e583294925
MD5 7dc67ea9089bd27fdd2e49fbf7fe9096
BLAKE2b-256 08cdb844f0f87dddf23b9a814adf5ebe02873883118a6c3eb1c1794a0823aacd

See more details on using hashes here.

File details

Details for the file hs2client-0.1.1-py3.6.egg.

File metadata

  • Download URL: hs2client-0.1.1-py3.6.egg
  • Upload date:
  • Size: 84.3 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hs2client-0.1.1-py3.6.egg
Algorithm Hash digest
SHA256 4f1a3ab1d98865962b78e29c977d8c0baa2b90a14e4998bb0d9fd08df86f3968
MD5 3cad1bb6df1abb9b7cba37c0535d9ba4
BLAKE2b-256 fc035b2cf6f6a0fad38a7b7024789e0b990766c7292f1072f7c8f48b2927cc1c

See more details on using hashes here.

File details

Details for the file hs2client-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hs2client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ad7c7b114de14cd80bfdab20bbeb5dcc73dd5f15f70d04117e4f1fdbf9c49e8
MD5 1502e47e32496165ebc3f8312dd6ace4
BLAKE2b-256 6275f8679994d859fbbb1f8dc3703e5967b22ad5200ea9594faad153afd63b58

See more details on using hashes here.

File details

Details for the file hs2client-0.1.1-py2.7.egg.

File metadata

  • Download URL: hs2client-0.1.1-py2.7.egg
  • Upload date:
  • Size: 80.3 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hs2client-0.1.1-py2.7.egg
Algorithm Hash digest
SHA256 b9195b71a7eddcd336326049376b3b34e5d2a3cdeab5064bcee7399c0cf455d9
MD5 0d6914ac57cf32e4987a70d999a83200
BLAKE2b-256 0ca0015883ffa4e3c0b9673560e2aca579338208bf4e06b59e12e1d461bd183e

See more details on using hashes here.

Supported by

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