从dict_values创建一个pyspark数据帧

时间:2017-10-10 12:00:15

标签: python python-3.x pandas dictionary pyspark

我正在尝试用dict_values生成一个pyspark数据帧。我可以使用pandas concate函数实现相同的功能。和字典由作为年份和值的密钥组成,作为pyspark数据帧。

这是我正在使用的代码我有一个替代方法可以联合所有数据框,我相信这不是实现它的更好方法。

dict_ym = {}
for yearmonth in keys:    
    key_name = 'df_'+str(yearmonth)
    dict_ym[key_name]= df
    # Add a new column to dataframe
    # Perform some more transformation

dict_ym 

# Now above dict has key as yearmonth for eg. 201501 and value as dataframe consit of 10 columns

def union_all_dataframes(*dfs):
    return reduce(DataFrame.unionAll, dfs)

df2 = union_all_dataframes(dict_ym['df_201501'],dict_ym['df_201502'] ... so on till dict_ym['df_201709'])

但是在pandas数据帧中我可以做类似这样的事情,它会使用下面的代码集将下面的所有数据帧附加到其他数据框:

 df2 = pd.concat(dict_ym.values()) # here dict_ym has pandas dataframe in case of spark df

我认为创建pyspark数据帧与pandas.concat类似,会更优雅。

1 个答案:

答案 0 :(得分:1)

试试这个,

df2 = union_all_dataframes(*dict_ym.values())