Dataframe 如何在Databricks笔记本中联合pyspark中的多个数据帧
到目前为止,我从So或附属网站上发现的东西没有正常工作,或者没有与我在Databricks上的测试一起工作,也许我在这里没有看到 这里再次需要: 我有按年平均开盘、按年平均高、按年平均低和按年平均收盘,所有这些都有一个共同的“年”列 所以我想把这三个因素结合起来,得到一个最终的df,如:Dataframe 如何在Databricks笔记本中联合pyspark中的多个数据帧,dataframe,pyspark,union,databricks,Dataframe,Pyspark,Union,Databricks,到目前为止,我从So或附属网站上发现的东西没有正常工作,或者没有与我在Databricks上的测试一起工作,也许我在这里没有看到 这里再次需要: 我有按年平均开盘、按年平均高、按年平均低和按年平均收盘,所有这些都有一个共同的“年”列 所以我想把这三个因素结合起来,得到一个最终的df,如: 年份、开盘、高位、低位、收盘 现在我不得不用丑陋的方式加入他们的“年”专栏: finalDF = Avg_Open_By_Year.join(Avg_High_By_Year, on=['Year'], how
年份、开盘、高位、低位、收盘
现在我不得不用丑陋的方式加入他们的“年”专栏:
finalDF = Avg_Open_By_Year.join(Avg_High_By_Year, on=['Year'], how='left_outer').join(Avg_Low_By_Year, on=['Year'], how='left_outer').join(Avg_Close_By_Year, on=['Year'], how='left_outer')
我认为应该有一种优雅的方式来实现这一点,就像SQL中的UnionAll一样
这里有一个可能的解决方案,选择的答案如下所述:
from functools import reduce # For Python 3.x
from pyspark.sql import DataFrame
def unionAll(*dfs):
return reduce(DataFrame.unionAll, dfs)
unionAll(td2, td3, td4, td5, td6, td7, td8, td9, td10)
但是,我在Databricks笔记本中执行此操作时,它会给我带来错误:
NameError:未定义名称“functools”
如果有人能给我更多的光,我将不胜感激。非常感谢。正如@Mohamed在评论中提到的,您必须导入functools才能使用它
导入工具
Addimport functools
在笔记本的开头。谢谢您的关注