[KYUUBI #3395] [DOCS] [Subtask] Add PyHive client docs

### _Why are the changes needed?_

close #3395.

Add client docs for PyHive.

### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [ ] Add screenshots for manual tests if appropriate

- [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #3394 from bowenliang123/3309-pyhive-doc.

Closes #3395

31a37b5c [liangbowen] add pyhive docs

Authored-by: liangbowen <liangbowen@gf.com.cn>
Signed-off-by: Kent Yao <yao@apache.org>
This commit is contained in:
liangbowen 2022-09-05 13:55:58 +08:00 committed by Kent Yao
parent 3adcebd557
commit d8e75aa9da
No known key found for this signature in database
GPG Key ID: F7051850A0AF904D
2 changed files with 68 additions and 22 deletions

View File

@ -0,0 +1,68 @@
<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-->
# PyHive
[PyHive](https://github.com/dropbox/PyHive) is a collection of Python DB-API and SQLAlchemy interfaces for Hive. PyHive can connect with the Kyuubi server serving in thrift protocol as HiveServer2.
## Requirements
PyHive works with Python 2.7 / Python 3. Install PyHive via pip for the Hive interface.
```
pip install 'pyhive[hive]'
```
## Usage
Use the Kyuubi server's host and thrift protocol port to connect.
For further information about usages and features, e.g. DB-API async fetching, using in SQLAlchemy, please refer to [project homepage](https://github.com/dropbox/PyHive).
### DB-API
```python
from pyhive import hive
cursor = hive.connect(host=kyuubi_host,port=10009).cursor()
cursor.execute('SELECT * FROM my_awesome_data LIMIT 10')
print(cursor.fetchone())
print(cursor.fetchall())
```
### Use PyHive with Pandas
PyHive provides a handy way to establish a SQLAlchemy compatible connection and works with Pandas dataframe for executing SQL and reading data via [`pandas.read_sql`](https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html).
```python
from pyhive import hive
import pandas as pd
# open connection
conn = hive.Connection(host=kyuubi_host,port=10009)
# query the table to a new dataframe
dataframe = pd.read_sql("SELECT id, name FROM test.example_table", conn)
```
### Authentication
If password is provided for connection, make sure the `auth` param set to either `CUSTOM` or `LDAP`.
```python
# open connection
conn = hive.Connection(host=kyuubi_host,port=10009,
user='user', password='password', auth='CUSTOM')
```

View File

@ -1,22 +0,0 @@
.. Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
`PyHive`_
=========
.. warning:: The document you are visiting now is incomplete, please help kyuubi community to fix it if appropriate for you.
.. _PyHive: https://github.com/dropbox/PyHive