hs2client 0.1.1

Creator: railscoder56

Last updated:

Add to Cart

Description:

hs2client 0.1.1

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.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.