1

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

0 回答 0