私は ETL コードを Python に移行しており、pyhs2 を使用していましたが、pyhive は積極的にサポートおよび保守されており、誰も pyhs2 の所有権を取得していないため、pyhive に切り替える予定です。私の質問は、fetchmany メソッドを構造化してデータセットを反復処理する方法です。
pyhs2 を使用した方法は次のとおりです。
while hive_cur.hasMoreRows:
hive_stg_result = hive_cur.fetchmany(size=200000)
hive_stg_df = pd.DataFrame(hive_stg_result)
hive_stg_df[27] = etl_load_key
if len(hive_stg_df) == 0:
call("rm -f /tmp/{0} ".format(filename), shell=True)
print ("No data delta")
else:
print (str(len(hive_stg_df)) + " delta records identified")
for i, row in hive_stg_df.iterrows():
私は fetchmany(size=100000) を持っていましたが、空のセットを返すと失敗します。
hive_stg_result = pyhive_cur.fetchmany(size=100000)
hive_stg_df = pd.DataFrame(hive_stg_result)