我正在尝试用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
类似,会更优雅。
答案 0 :(得分:1)
试试这个,
df2 = union_all_dataframes(*dict_ym.values())