如何将Pyspark中的数据帧列表(超过1000个数据帧)转换为单个数据帧?

2024-10-01 05:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个列表中有超过5000个数据帧,我想在分布式计算中将所有的df合并成一个df。你知道吗

我试过reduce函数,但运行起来大约需要2个小时。有没有更省时的方法?你知道吗

torqueFilteredRawData = [df1,df2,......,df5600]

torqueFRData = reduce(DataFrame.unionAll, torqueFilteredRawData)

display(torqueFRData)

编辑-从评论中添加详细信息

我有2个数据帧:

  • 数据帧1有FromTo时间戳列
  • 数据帧2具有所有与时间戳相关的数据。你知道吗

我想查询dataframe2以获取dataframe1中可用的FromTo之间的数据。我使用map函数查询dataframe 2,它返回一个dataframe列表:

startTime = SD_GE_One.select("startTime").collect() 
endTime = SD_GE_One.select("endTime").collect() 
FilteredRawData = list(map(lambda x,y:RawData.filter("SignalTimeStamp BETWEEN '"+ str(x[0])+"' AND '"+str(y[0])+"'"), startTime,endTime)) 

Tags: to数据函数frommapreducedataframedf