网站做百度竞价,网站运营一般做那些分析,网络公司策划方案,石家庄网站建设诚荐优度网络前言
公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表#xff0c;目前一个可行的方案是使用Python语言#xff0c;通过借助pyhive库#xff0c;您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么#xff1f;
PyHive是一…前言
公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表目前一个可行的方案是使用Python语言通过借助pyhive库您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么
PyHive是一个Python库用于与Apache Hive进行交互和查询。Apache Hive是建立在Hadoop平台上的数据仓库工具旨在方便地执行SQL类型的查询以分析大型数据集。PyHive库允许Python开发人员通过编程语言来访问和操作Hive数据库从而进行数据查询、分析和处理。
通过PyHive可以使用Python编写Hive查询和命令并从Python应用程序中直接访问和操作Hive中存储的数据。PyHive提供了与Hive数据库交互所需的API和功能使得在Python环境中进行大规模数据处理变得更加简单和高效。
二、本地安装 pyhive库
1. 安装 pip 包管理工具 在Python环境中通常会同时安装有pip和pip3这两个包管理工具它们的主要区别在于所针对的Python版本。 pippip是用于Python 2.x版本的包管理工具。在Python 2.x环境下pip通常是默认的包管理工具用于安装、升级和管理Python包和依赖项。 pip3pip3则是专为Python 3.x版本设计的包管理工具。在Python 3.x环境中pip3用于安装、升级和管理Python 3.x的包和依赖项。需要注意的是在某些情况下pip3也可以用来代替pip以确保在Python 2.x和Python 3.x环境中都能使用相同的包管理工具。 因此如果需要在Python 3环境下安装包时应优先选择使用pip3来安装以确保Python 3.x环境中的包管理工具正确安装和管理依赖项。如果您同时使用Python 2和Python 3环境则需要注意使用不同的pip版本以避免混淆和冲突。 在 MacBook 上安装 pip 工具可以按照以下步骤进行
1. 安装 Homebrew如果尚未安装
Homebrew 是一个包管理工具可以用来方便地安装和管理 macOS 上的软件包。
/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)2. 安装 Python包括 pip
使用 Homebrew 安装 Pythonpip 通常会随 Python 一起安装。
brew install python安装完成后你可以检查 python3 和 pip3 是否已经安装
python3 --version
pip3 --version3. 安装或升级 pip
如果你已经有 Python 安装但没有 pip 或需要升级 pip可以使用以下命令
python3 -m ensurepip --upgrade或者如果你已经有 pip可以通过以下命令升级它
pip3 install --upgrade pip4. 使用 pip 安装包
确认 pip 安装成功后你可以使用 pip 安装 Python 包。例如安装 requests 包(做个测试)
pip3 install requests
(myenv) ➜ ~ pip3 install requests
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting requestsDownloading https://pypi.tuna.tsinghua.edu.cn/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl (64 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 1.6 MB/s eta 0:00:00
Collecting charset-normalizer4,2 (from requests)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl (122 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 122.2/122.2 kB 4.1 MB/s eta 0:00:00
Collecting idna4,2.5 (from requests)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl (66 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.8/66.8 kB 2.1 MB/s eta 0:00:00
Collecting urllib33,1.21.1 (from requests)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl (121 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 kB 4.0 MB/s eta 0:00:00
Collecting certifi2017.4.17 (from requests)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl (164 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 164.4/164.4 kB 4.1 MB/s eta 0:00:00
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2024.6.2 charset-normalizer-3.3.2 idna-3.7 requests-2.32.3 urllib3-2.2.1额外步骤安装虚拟环境可选
使用虚拟环境可以帮助你管理项目依赖
pip3 install virtualenv创建一个新的虚拟环境
python3 -m venv myenv激活虚拟环境
source myenv/bin/activate退出虚拟环境
deactivate如何安装的速度太慢可以考虑换下国内的镜像
常见的国内镜像源 以下是几个常见的国内 PyPI 镜像源
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple 阿里云 https://mirrors.aliyun.com/pypi/simple/ 豆瓣(douban) https://pypi.douban.com/simple/ 中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学 https://pypi.hustunique.com/
2. 实操演示
代码如下示例
# 新建虚拟环境
➜ ~ python3 -m venv myenv
# 激活环境
➜ ~ source myenv/bin/activate
(myenv) ➜ ~ python -m pip install pyhive
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pyhiveDownloading https://pypi.tuna.tsinghua.edu.cn/packages/f6/ec/5c658b3a4d99a6d9145030cc8e003c3f7efc668d866e88544812ab0af310/PyHive-0.7.0.tar.gz (46 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.5/46.5 kB 652.1 kB/s eta 0:00:00Installing build dependencies ... doneGetting requirements to build wheel ... doneInstalling backend dependencies ... donePreparing metadata (pyproject.toml) ... done
Collecting future (from pyhive)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl (491 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 491.3/491.3 kB 3.1 MB/s eta 0:00:00
Collecting python-dateutil (from pyhive)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 5.7 MB/s eta 0:00:00
Collecting six1.5 (from python-dateutil-pyhive)Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: pyhiveBuilding wheel for pyhive (pyproject.toml) ... doneCreated wheel for pyhive: filenamePyHive-0.7.0-py3-none-any.whl size53872 sha256da53a804b81ecb864a3cc38acb060e3b17bd93cf9c7d914ebdccdbd999964302Stored in directory: /Users/mac/Library/Caches/pip/wheels/99/bf/03/0562e50cb60a3bcb0e09602d7060ea2c6da7039f99bda3ec86
Successfully built pyhive
Installing collected packages: six, future, python-dateutil, pyhive
Successfully installed future-1.0.0 pyhive-0.7.0 python-dateutil-2.9.0.post0 six-1.16.0# 进入环境测试导入包无错误
➜ ~ source myenv/bin/activate
(myenv) ➜ ~ python
Python 3.12.3 (main, Apr 9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type help, copyright, credits or license for more information.from pyhive import hive
# 注意如果还是报错可能还需要安装其他包按照要求安装即可
pip install pyhive
pip install thrift
pip install sasl
pip install thrift_sasl
3. 测试连接hive示例
3.1 hive连接 jdbc 命令行
(myenv) ➜ hive bin/beeline -u jdbc:hive2://localhost:10000 -n root -p root
Connected to: Apache Hive (version 3.1.3)
Driver: Hive JDBC (version 3.1.3)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 3.1.3 by Apache Hive
0: jdbc:hive2://localhost:10000 show databases;
INFO : Compiling command(queryIdmac_20240608144604_4395d68b-785d-4808-8c09-1732ad816350): show databases
INFO : Concurrency mode is disabled, not creating a lock manager
INFO : Semantic Analysis Completed (retrial false)
INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:database_name, type:string, comment:from deserializer)], properties:null)
INFO : Completed compiling command(queryIdmac_20240608144604_4395d68b-785d-4808-8c09-1732ad816350); Time taken: 0.748 seconds
INFO : Concurrency mode is disabled, not creating a lock manager
INFO : Executing command(queryIdmac_20240608144604_4395d68b-785d-4808-8c09-1732ad816350): show databases
INFO : Starting task [Stage-0:DDL] in serial mode
INFO : Completed executing command(queryIdmac_20240608144604_4395d68b-785d-4808-8c09-1732ad816350); Time taken: 0.037 seconds
INFO : OK
INFO : Concurrency mode is disabled, not creating a lock manager
----------------
| database_name |
----------------
| default |
| test |
| tmp |
----------------
3 rows selected (1.113 seconds)
0: jdbc:hive2://localhost:100000: jdbc:hive2://localhost:10000 select * from test.login_data limit 3;
--------------------------------------------------------------------------------
| login_data.logtime | login_data.account_id | login_data.ip | login_data.dt |
--------------------------------------------------------------------------------
| 2019-07-15 00:00:00 | 102325 | 223.116.97.23 | 2019-07-15 |
| 2019-07-15 00:00:00 | 221977 | 223.104.247.162 | 2019-07-15 |
| 2019-07-15 00:00:00 | 223764 | 59.32.248.102 | 2019-07-15 |
--------------------------------------------------------------------------------
3 rows selected (1.487 seconds)3.2 pyhive连接获取数据示例
(myenv) ➜ ~ python
Python 3.12.3 (main, Apr 9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type help, copyright, credits or license for more information.from pyhive import hiveconn hive.Connection(hostlocalhost, port10000, usernameroot)cursor conn.cursor()cursor.execute(select * from test.login_data limit 3)for row in cursor.fetchall():
... print(row)
...
(2019-07-15 00:00:00, 102325, 223.116.97.23, 2019-07-15)
(2019-07-15 00:00:00, 221977, 223.104.247.162, 2019-07-15)
(2019-07-15 00:00:00, 223764, 59.32.248.102, 2019-07-15)cursor.close()conn.close()完整示例
from pyhive import hive
import logging# 配置日志记录
logging.basicConfig(levellogging.INFO)
logger logging.getLogger(__name__)try:# 配置 Hive 连接参数host localhostport 10000username rootdatabase test# 创建连接conn hive.Connection(hosthost, portport, usernameusername, databasedatabase)# 创建游标cursor conn.cursor()# 执行查询query select * from test.login_data limit 3cursor.execute(query)# 获取查询结果results cursor.fetchall()for row in results:print(row)except Exception as e:logger.error(Error occurred while connecting to Hive or executing query, exc_infoTrue)
finally:# 确保游标和连接在异常情况下也能正确关闭try:if cursor:cursor.close()except Exception as e:logger.error(Error occurred while closing cursor, exc_infoTrue)try:if conn:conn.close()except Exception as e:logger.error(Error occurred while closing connection, exc_infoTrue)运行结果
(myenv) ➜ tmp python test.py
INFO:pyhive.hive:USE test
INFO:pyhive.hive:select * from test.login_data limit 3
(2019-07-15 00:00:00, 102325, 223.116.97.23, 2019-07-15)
(2019-07-15 00:00:00, 221977, 223.104.247.162, 2019-07-15)
(2019-07-15 00:00:00, 223764, 59.32.248.102, 2019-07-15)未解决问题
使用 Pycharm开发的时候提示如下报错 这个应该是没有应用到我虚拟 myenv环境导致的尝试新建一个新的解释器但是未成功有么有知道怎么做的欢迎和我讨论。
参考
https://www.cnblogs.com/SunshineKimi/p/12969751.html 文章转载自: http://www.morning.tbqxh.cn.gov.cn.tbqxh.cn http://www.morning.lxthr.cn.gov.cn.lxthr.cn http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.dighk.com.gov.cn.dighk.com http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.mspkz.cn.gov.cn.mspkz.cn http://www.morning.nynyj.cn.gov.cn.nynyj.cn http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.bwznl.cn.gov.cn.bwznl.cn http://www.morning.bnpn.cn.gov.cn.bnpn.cn http://www.morning.rqfzp.cn.gov.cn.rqfzp.cn http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn http://www.morning.xjnw.cn.gov.cn.xjnw.cn http://www.morning.jxfmn.cn.gov.cn.jxfmn.cn http://www.morning.tqhpt.cn.gov.cn.tqhpt.cn http://www.morning.jwskq.cn.gov.cn.jwskq.cn http://www.morning.ppwdh.cn.gov.cn.ppwdh.cn http://www.morning.lmrjn.cn.gov.cn.lmrjn.cn http://www.morning.cjcry.cn.gov.cn.cjcry.cn http://www.morning.kbntl.cn.gov.cn.kbntl.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.frnjm.cn.gov.cn.frnjm.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.xwnnp.cn.gov.cn.xwnnp.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.mtxrq.cn.gov.cn.mtxrq.cn http://www.morning.mpscg.cn.gov.cn.mpscg.cn http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn http://www.morning.trqhd.cn.gov.cn.trqhd.cn http://www.morning.wgrm.cn.gov.cn.wgrm.cn http://www.morning.skmzm.cn.gov.cn.skmzm.cn http://www.morning.plxhq.cn.gov.cn.plxhq.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn http://www.morning.jntcr.cn.gov.cn.jntcr.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.drndl.cn.gov.cn.drndl.cn http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn http://www.morning.knqck.cn.gov.cn.knqck.cn http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn http://www.morning.stcds.cn.gov.cn.stcds.cn http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn http://www.morning.wklhn.cn.gov.cn.wklhn.cn http://www.morning.hkchp.cn.gov.cn.hkchp.cn http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn http://www.morning.dwztj.cn.gov.cn.dwztj.cn http://www.morning.tralution.cn.gov.cn.tralution.cn http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.fpbj.cn.gov.cn.fpbj.cn http://www.morning.txjrc.cn.gov.cn.txjrc.cn http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn http://www.morning.zyndj.cn.gov.cn.zyndj.cn http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.brhxd.cn.gov.cn.brhxd.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.xysxj.com.gov.cn.xysxj.com http://www.morning.rbzd.cn.gov.cn.rbzd.cn http://www.morning.tpps.cn.gov.cn.tpps.cn http://www.morning.lgznf.cn.gov.cn.lgznf.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn http://www.morning.gqtw.cn.gov.cn.gqtw.cn http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn http://www.morning.kgsws.cn.gov.cn.kgsws.cn