如何在Pyspark中将数据帧列表(具有1000多个数据帧)转换为单个数据帧?

时间:2019-08-19 10:54:06

标签: python pyspark

我在一个列表中有5000多个数据帧,我想在分布式计算中将所有df合并为1 df。

我尝试了reduce函数,但是运行大约需要2个小时。有什么更好的方法可以节省时间吗?

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

torqueFRData = reduce(DataFrame.unionAll, torqueFilteredRawData)

display(torqueFRData)

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

我有2个数据框:

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

我想查询数据框2以获取数据框1中可用的FromTo之间的数据。我使用了map函数来查询数据框2,该数据框返回一个数据框列表:

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)) 

0 个答案:

没有答案