我有下面的代码段,它遍历.csv
文件列表,然后使用insert_csv_data
函数读取、预处理.csv
文件的数据并将其插入.hyper
文件(Hyper是Tableau新的内存数据引擎技术,专为大型或复杂数据集的快速数据摄取和分析查询处理而设计):
有关insert_csv_data
函数的详细解释,请参见here
for csv in csv_list:
insert_csv_data(hyper)
上述代码的问题是,它一次将一个.csv
文件插入.hyper
文件,目前速度相当慢
我想知道当我使用ApacheSpark在Databricks上进行处理时,是否有更快或并行的解决方法。我做了一些研究,发现了类似multiprocessing
的模块,
joblib
和asyncio
这可能适用于我的场景,但我不确定如何正确实现它们
请告知
编辑:
并行代码:
from joblib import Parallel, delayed
element_run = Parallel(n_jobs=1)(delayed(insert_csv_data)(csv) for csv in csv_list)
这并没有直接回答这个问题,而是演示了如何使用concurrent.futures模块轻松地互换多处理和多线程。请注意,这两个循环实现了完全相同的功能,代码两部分之间的唯一区别是work manager类
相关问题 更多 >
编程相关推荐