问题标签 [pyhive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5670 浏览

python - 使用 python 和 Kerberos 连接到 Hive

我正在尝试使用 Python 连接到配置单元。我安装了所有需要的依赖项(sasl、thrift_sasl 等)

这是我尝试连接的方式:

但我得到这个错误:

次要代码可能会提供更多信息(找不到领域“REALM_DOMAIN”的 KDC)

为什么我不见了?有人有使用pyHive连接的示例kerberos吗?

谢谢您的帮助。

0 投票
0 回答
82 浏览

python - python sasl C1083错误

我正在尝试在 Windows 10 上为 python 安装 sasl-0.1.3,但出现 C1083致命错误,它引用 Visual Studio C++ 并failed to build wheel for sasl在错误消息中声明。

我想知道是否有任何不包括轮子的解决方案,因为我的办公室对此有限制。

0 投票
1 回答
608 浏览

python - Python Hive-PyHive 连接重置问题

我可以使用 PyHive 库从 Python 连接到 hive。在使用 PyHive 从配置单元中获取数据时,我遇到了问题Connection reset by peer

建立连接后,我正在使用 Python 中的 PyHive 从配置单元中获取数据。连接正在成功,但在从配置单元获取数据时,它运行了 5 分钟以上,然后抛出connection reset by peer

0 投票
1 回答
3301 浏览

python - 在单个 pyhive.execute 命令中执行多个查询

使用 pyhive,是否可以执行多个 hql,例如“CREATE TABLE TABLE1 (ITEM_KEY BIGINT);CREATE TABLE TABLE2 (ITEM_NAME BIGINT);”。

示例代码

0 投票
3 回答
1293 浏览

python - Python/PyHive - 从异常中提取特定的错误消息

我正面临与此类似的异常,我正在尝试根据错误本身来处理它。问题是它pyhive.exc.OperationalError非常通用,并且可以处理从超时到不存在的表的错误,因此我需要该errorMessage部分的确切值才能以不同的方式处理每种错误类型,例如超时,等待并重试;如果是别的东西,以不同的方式处理,依此类推。

如果我将错误捕获为except OperationalError as e,我将如何提取该errorMessage部分?我可以解析字符串表示 ( e.__str__()) 但这似乎很奇怪,因为我确信有正确的方法。

0 投票
1 回答
182 浏览

python - 按日期范围创建带有分区的临时表

我正在尝试使用以下查询创建一个临时表,我正在尝试修改它以创建按日期分区的表

此查询在 s3 上创建一个临时表并将所有内容转储为 orc 文件。我正在partition按日期范围尝试此表

有人可以帮我查询吗?

0 投票
1 回答
2918 浏览

python - 在长时间运行的 Hive 插入查询期间“TSocket 读取 0 字节”

我正在使用 PyHive 0.6.1 在 Hive 中运行一个较长的插入查询,thrift.transport.TTransport.TTransportException: TSocket read 0 bytes运行大约 5 分钟后它失败了。在服务器端,查询一直运行直到成功完成。快速查询没有这个问题。

我无法使用相同的 python 版本在我的 Mac 上本地重现它:代码正确地等待直到查询完成。发生这种情况的环境是一个基于 python:3.6-slim 的 Docker 容器。除其他外,我正在安装 libsasl2-dev 和 libsasl2-modules 包,以及 pyhive[hive] python 包。

任何线索为什么会这样?提前致谢。

我正在使用的代码是:

这是完整的追溯

0 投票
1 回答
936 浏览

python - 从烧瓶中查询配置单元

我是烧瓶的新手,我正在使用以下烧瓶 cookiecutter开始快速原型。项目的主要思想是从 hive 集群中收集数据并使用烧瓶将其推送给最终用户。

虽然,我成功地能够使用pyhive连接器将烧瓶连接到配置单元服务器,但我遇到了一个奇怪的问题,这与select limit我试图查询 50 多个项目的位置有关。

pyhive在我的例子中,我为类似的演示构建了类似于烧瓶扩展开发的 Hive 类:

并创建了一个端点来从配置单元加载数据:

在第一次运行时,如果我尝试加载限制为 50 个项目的东西,一切正常,但是一旦我增加它就会保持没有加载的状态。但是,当我使用 jupyter 笔记本加载数据时,它工作正常,这就是为什么我怀疑我可能会从我的烧瓶代码中遗漏一些东西。

0 投票
0 回答
1004 浏览

python - PyHive - 长时间运行的查询超时 - [Errno 110] 连接超时

我正在Hive queries使用Python. PyHive其中一个查询大约需要 12-15 分钟才能完成。我可以看到它完成了Hadoop ResourceManager UI,但是我看到下面的超时错误Python

错误:回溯(最后一次调用):文件“/home/mrjadav/python/thunderbolt.py”,第 704 行,在 main() 文件“/home/mrjadav/python/thunderbolt.py”,第 662 行,在 main getColoLatency() 文件“/home/mrjadav/python/thunderbolt.py”,第 582 行,在 getColoLatency dataSet = saveHqlResultToXls(queryString=queryString, caption='Colo Latency Breakdown', configuration=g_hive_config_heavy) 文件“/home/mrjadav/python /thunderbolt.py”,第 636 行,在 saveHqlResultToXls dataSet=cursor.fetchall() 文件“/home/y/lib/python2.7/site-packages/pyhive/common.py”,第 136 行,在 fetchall 返回列表中( iter(self.fetchone, None)) 文件“/home/y/lib/python2.7/site-packages/pyhive/common.py”,第 105 行,在 fetchone self._fetch_while(lambda: not self._data and self ._state != 自我。_STATE_FINISHED) 文件“/home/y/lib/python2.7/site-packages/pyhive/common.py”,第 45 行,在 _fetch_while self._fetch_more() 文件“/home/y/lib/python2.7/site -packages/pyhive/hive.py”,第 386 行,在 _fetch_more 响应 = self._connection.client.FetchResults(req) 文件“/home/y/lib/python2.7/site-packages/TCLIService/TCLIService.py” ,第 714 行,在 FetchResults 返回 self.recv_FetchResults() 文件 "/home/y/lib/python2.7/site-packages/TCLIService/TCLIService.py",第 726 行,在 recv_FetchResults (fname, mtype, rseqid) = iprot .readMessageBegin() 文件“/home/y/lib/python2.7/site-packages/thrift/protocol/TBinaryProtocol.py”,第 134 行,在 readMessageBegin sz = self.readI32() 文件“/home/y/lib /python2.7/site-packages/thrift/protocol/TBinaryProtocol.py”,第 217 行,在 readI32 buff = self.trans.readAll(4) 文件“/home/y/lib/python2.7/site-packages/thrift/transport/TTransport.py”,第 60 行,在 readAll 块 = self.read(sz - 有)文件“/home/y/lib/python2.7/site-packages/thrift_sasl/init .py”,第 166 行,在读取 self._read_frame() 文件“/home/y/lib/python2.7/site-packages/thrift_sasl/init .py ”,第 170 行,在 _read_frame header = self._trans 中。 readAll(4) 文件“/home/y/lib/python2.7/site-packages/thrift/transport/TTransport.py”,第 60 行,在 readAll 块 = self.read(sz - have) 文件“/home/ y/lib/python2.7/site-packages/thrift/transport/TSocket.py",第 117 行,读取 buff = self.handle.recv(sz) 错误:[Errno 110] 连接超时

0 投票
1 回答
8700 浏览

python - 使用 PyHive 和 SqlAlchemy 创建表

我正在尝试使用 SqlAlchemy ORM 在 Hive 数据库中创建一个表。我的设置是 Python 3.6,带有PyHive==0.6.1SQLAlchemy==1.2.11(及其相对依赖项)和Hive 1.1.0-cdh5.15.1.

我的方法如下:

这可以很好地连接到 Hive 并创建一个新数据库。此时我创建了数据模型:

我尝试:

没有成功:(因为引发了以下异常:

我认为这是相关的部分:

这里PyHive#sqlalchemy示例假设表已经存在,但是如果我需要创建它怎么办?