我正在从多个表中获取数据,并且每次系统将数据传输到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