Python Apache Hive クライアント ( https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-Python ) を使用して、Shark サーバーでクエリを実行しています。
問題は、Shark CLI で通常どおりクエリを実行すると完全な結果セットが得られるが、Hive Python クライアントを使用すると 100 行しか返されないことです。選択クエリに制限はありません。
サメ CLI:
[localhost:10000] shark> SELECT COUNT(*) FROM table;
46831
パイソン:
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
奇妙なことに、Python コードで COUNT(*) を実行すると、次のようになります。
In [104]: hdata
Out[104]: ['46831']
この制限を解除するためにアクセスできる設定ファイルまたは変数はありますか?