我如何使用多线程来连接多个pyspark DataFrame

时间:2019-04-29 20:25:07

标签: python multithreading apache-spark pyspark union

我正在从多个表中获取数据,并且每次系统将数据传输到S3之前,再将其推送到我的Spark集群。

我希望能够使用多线程来避免在开始另一个转储之前等待转储。

不幸的是,我无法解决问题。

这是我要尝试的,在此“解决方案”中,“联合”没有应用到位,所以我只获得第一个迭代器作为输出。

感谢您的帮助。

from multiprocessing.pool import ThreadPool

def concat_spark_iterator(iterator):

    try:
        _iterator = iter(iterator)
        df = next(_iterator)

    except StopIteration:
        return iterator

    pool = ThreadPool(100)
    pool.map(lambda _df: df.union(_df), iterator)

    return df

0 个答案:

没有答案