从 dict_values 创建一个 pyspark 数据框
Posted
技术标签:
【中文标题】从 dict_values 创建一个 pyspark 数据框【英文标题】:Create a pyspark dataframe from dict_values 【发布时间】:2017-10-10 12:00:14 【问题描述】:我正在尝试从 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
我认为创建与pandas.concat
类似的pyspark 数据框会更优雅。
【问题讨论】:
【参考方案1】:试试这个,
df2 = union_all_dataframes(*dict_ym.values())
【讨论】:
以上是关于从 dict_values 创建一个 pyspark 数据框的主要内容,如果未能解决你的问题,请参考以下文章
在遍历 dict_values 或列表中的数据帧时访问下一个 df ("v+1")
AttributeError: 'dict_values' object has no attribute 'translate'
Python:如何将字典中的值提取到列表中->当前在结果中获取 dict_values() [重复]
TypeError: can't pickle dict_values objects
'dict_values' object does not support indexing, Python字典dict中由value查key