在 Python 中再次循环

Loop again through loop in Python

我有一个 table 超过 10000 条记录,我想将数据处理到另一个来源。 我不想一次发送记录,而是将它们分成几批,即 batch_size=1000。 因此该循环将发送 1000 条记录,然后发送下 1000 条记录,以此类推直到最后一条记录。

我怎样才能把它放在 2 个循环中,以便外循环用于选择 1000 条记录,而内循环用于处理这些记录。处理完成后,它应该返回到外循环,为接下来的 1000 条记录递增,然后是 运行 内循环,依此类推,直到达到 total_rows。 请帮忙。

您可以使用 pyspark.sql.functions.slice 分割您的 DataFrame,

但您也可以“步行”,使用常规列表切片。

rows = dfpatch.rdd.collect()
batch_size = 1000

batches = [rows[r:r + batch_size] for r in range(0, len(rows), batch_size)]    

print(len(batches)) # -> 11

for batch in batches:
    for row in batch:
        # ...