我正在将我的 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)