2017-10-10 3 views
0

Ich versuche, einen pyspark Datenrahmen aus dict_values ​​zu generieren. Ich kann dasselbe mit der Pandas-Concate-Funktion erreichen. und Wörterbuch bestehen aus Schlüssel als Jahr und Wert als pyspark Datenrahmen.Erstellen Sie einen pyspark Datenrahmen von dict_values ​​

Hier ist mein Code, den ich benutze Ich habe eine Alternative zu Union alle die Datenrahmen, die ich glaube nicht der bessere Weg, um es zu erreichen.

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']) 

Aber in Pandas Datenrahmen i so etwas tun kann, der unter Satz von Code unter Verwendung aller Datenrahmen unter anderen anhängen:

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

denke ich, sie wäre elegant pyspark zu schaffen Datenrahmen ähnlich wie pandas.concat.

Antwort

1

Try this,

df2 = union_all_dataframes(*dict_ym.values()) 
Verwandte Themen