如何在Python中使用多线程来实现?

问题描述 投票:0回答:2

我是Python新手,我想了解如何使用多线程执行此操作,因为数据太大,此操作需要花费大量时间。

我在 Spark 数据帧 df_my 中有大约 2500 多个列

d=[]
for x in df_my.columns:
  
    null_cnt= df_my.filter(df_my[x].isNotNull()).count()
    zero_cnt= df_my.filter(df_my[x]==0).count()
    fill_percent= str(((null_cnt)/total)*100)
    zero_percent= str(((zero_cnt)/null_cnt)*100)
    d.append({'Feature_name' : x,
              'Fillrate': fill_percent,
              'zero_percent':zero_percent })
    
final=spark.createDataFrame(d)
f_pandas=final.toPandas()
f_pandas.to_excel("output_pandas.xlsx") 

任何人都可以帮我使用多线程来完成此操作吗?

python pyspark
2个回答
0
投票

您可以使用 pandarallel 中的 .parallel_apply 函数进行多处理。看看这个链接


0
投票

您可以创建一个线程池并使用它来并行运行 Spark 任务。 请注意,您需要使用以下配置来使用 Spark 的公平调度程序:

conf.set("spark.scheduler.mode", "FAIR")

请参阅此链接以获取 python 代码 - 在Pyspark中使用python多线程并行将数据写入表

© www.soinside.com 2019 - 2024. All rights reserved.