ThriftParserError: ThriftPy does not support generating module with path in protocol 'd'解决办法

使用python连接hbase

1、安装包

  • pip install happybase
  • pip install thrift

2、代码

#-*- coding:utf-8 _*-  
# @Author: dreams 
# @File:   connect.py 
# @Time:   2018/6/10 15:55

import happybase

# 链接数据库
connection = happybase.Connection('192.168.1.51')
print connection.tables()

# 创建表
connection.create_table(
    'lzh_base',
    {
        'cf1': dict(max_versions=10),
        'cf2': dict(max_versions=1, block_cache_enabled=False),
        'cf3': dict()
        # 包括了三个列族:cf1, cf2, cf3
    }
)

print connection.tables()

3、问题

在运行以上代码的时候会出现如下问题:

ThriftParserError: ThriftPy does not support generating module with path in protocol ‘d’

解决办法如下:

在 \env\hbase\Lib\site-packages\thriftpy\parser下的parser.py文件的488行有如下代码:

if url_scheme == '':
        with open(path) as fh:
            data = fh.read()
    elif url_scheme in ('http', 'https'):
        data = urlopen(path).read()

将其修改为:

if url_scheme == '':
        with open(path) as fh:
            data = fh.read()
    elif url_scheme in ('c', 'd', 'e', 'f'):
        with open(path) as fh:
            data = fh.read()
    elif url_scheme in ('http', 'https'):
        data = urlopen(path).read()

修改之后再连接HBase就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值