我正在将我的ETL代码迁移到Python并使用pyhs2,但我将切换到pyhive,因为它得到了积极的支持和维护,没有人获得pyhs2的所有权。 我的问题是如何构造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)