Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe 如何在Databricks笔记本中联合pyspark中的多个数据帧_Dataframe_Pyspark_Union_Databricks - Fatal编程技术网

Dataframe 如何在Databricks笔记本中联合pyspark中的多个数据帧

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

到目前为止,我从So或附属网站上发现的东西没有正常工作,或者没有与我在Databricks上的测试一起工作,也许我在这里没有看到

这里再次需要:

我有按年平均开盘、按年平均高、按年平均低和按年平均收盘,所有这些都有一个共同的“年”列

所以我想把这三个因素结合起来,得到一个最终的df,如:
年份、开盘、高位、低位、收盘

现在我不得不用丑陋的方式加入他们的“年”专栏:

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才能使用它

导入工具

Add
import functools
在笔记本的开头。谢谢您的关注