파이썬 아파치 하이브 클라이언트 (https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-Python)를 사용하여 상어 서버에서 쿼리를 실행하고 있습니다.파이썬 하이브 쿼리가 100으로 제한됩니다.
필자는 상어 CLI에서 쿼리를 정상적으로 실행할 때 전체 결과 집합을 얻을 수 있지만 하이브 파이썬 클라이언트를 사용하면 100 개의 행만 반환합니다. 내 선택 쿼리에는 제한이 없습니다.
상어 CLI :
파이썬[localhost:10000] shark> SELECT COUNT(*) FROM table;
46831
: 나는 파이썬 코드에서 COUNT (*)를 실행할 때
import sys
from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
try:
transport = TSocket.TSocket('localhost', 10000)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute("SELECT * from table")
hdata = client.fetchAll()
transport.close()
....
In [97]: len(hdata)
Out[97]: 100
는 이상하게도, 내가 얻을 :
In [104]: hdata
Out[104]: ['46831']
이 설정 있는가 이 제한을 해제하기 위해 액세스 할 수있는 파일 또는 변수는 무엇입니까?
fetchAll() 메소드에서 maxRows가 설정된다는 것을 의미합니까? – greenafrican
@greenAfrican : 예, 정확하게. 두 번째 링크를 따라 가면 fetchN()의'driver.setMaxRows (numRows);에 대한 적절한 호출을 발견 할 것이다. – JensG
고마워. 이를 임시 캐시 된 테이블을 사용하여 해결 한 다음 COUNT를 실행 한 다음 fetchN (count_var)을 실행합니다. 감사. – greenafrican