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就可以了。

猜你喜欢

转载自blog.csdn.net/li_and_li/article/details/80653980
今日推荐