gpt4 book ai didi

python - 为什么当我尝试运行 table.scan() 时 happybase 返回 "TSocket read 0 bytes"?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:01 30 4
gpt4 key购买 nike

我正在使用 happybase 连接到 HBase。到目前为止,连接很好。我们已经启动并运行节俭。我能够连接到表 (AFAIK),但是当我尝试扫描表时,我得到了 TTransportException: TSocket read 0 bytes。这是我正在使用的代码。

import happybase
import json

connection = happybase.Connection('ipaddress', '22')

table = connection.table('rawdataingestion')

for key, data in table.scan():
print key, data
break

我在这里使用 break,所以它不会打印出 google 行。我只想看到它正在建立连接并引入数据。

这是错误。

---> 38 for key, data in table.scan():
39 print key, data
40 break

/root/anaconda/lib/python2.7/site-packages/happybase/table.pyc in scan(self, row_start, row_stop, row_prefix, columns, filter, timestamp, include_timestamp, batch_size, scan_batching, limit, sorted_columns)
372 )
373 scan_id = self.connection.client.scannerOpenWithScan(
--> 374 self.name, scan, {})
375
376 logger.debug("Opened scanner (id=%d) on '%s'", scan_id, self.name)

/root/anaconda/lib/python2.7/site-packages/happybase/hbase/Hbase.pyc in scannerOpenWithScan(self, tableName, scan, attributes)
1917 """
1918 self.send_scannerOpenWithScan(tableName, scan, attributes)
-> 1919 return self.recv_scannerOpenWithScan()
1920
1921 def send_scannerOpenWithScan(self, tableName, scan, attributes):

/root/anaconda/lib/python2.7/site-packages/happybase/hbase/Hbase.pyc in recv_scannerOpenWithScan(self)
1930
1931 def recv_scannerOpenWithScan(self, ):
-> 1932 (fname, mtype, rseqid) = self._iprot.readMessageBegin()
1933 if mtype == TMessageType.EXCEPTION:
1934 x = TApplicationException()

/root/anaconda/lib/python2.7/site-packages/thrift/protocol/TBinaryProtocol.pyc in readMessageBegin(self)
138 raise TProtocolException(type=TProtocolException.BAD_VERSION,
139 message='No protocol version header')
--> 140 name = self.trans.readAll(sz)
141 type = self.readByte()
142 seqid = self.readI32()

/root/anaconda/lib/python2.7/site-packages/thrift/transport/TTransport.pyc in readAll(self, sz)
56 have = 0
57 while (have < sz):
---> 58 chunk = self.read(sz - have)
59 have += len(chunk)
60 buff += chunk

/root/anaconda/lib/python2.7/site-packages/thrift/transport/TTransport.pyc in read(self, sz)
157 return ret
158
--> 159 self.__rbuf = StringIO(self.__trans.read(max(sz, self.__rbuf_size)))
160 return self.__rbuf.read(sz)
161

/root/anaconda/lib/python2.7/site-packages/thrift/transport/TSocket.pyc in read(self, sz)
118 if len(buff) == 0:
119 raise TTransportException(type=TTransportException.END_OF_FILE,
--> 120 message='TSocket read 0 bytes')
121 return buff
122

TTransportException: TSocket read 0 bytes

最佳答案

问题出在这里-

connection = happybase.Connection('ipaddress', '22')

thrift 的默认端口是 9090。我将代码更改为

connection = happybase.Connection('ipaddress', 9090) 

并获取了我的数据。

关于python - 为什么当我尝试运行 table.scan() 时 happybase 返回 "TSocket read 0 bytes"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726995/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com