0
我在Spark中有2個數據框。他們都有一個獨特的ID。 結構如下當連接字段是唯一的時候,在數據框之間進行連接的有效方法
df1:
id_df1 values
abc abc_map_value
cde cde_map_value
fgh fgh_map_value
df2:
id_df2 array_id_df1
123 [abc, fgh]
456 [cde]
我希望得到以下數據幀結果:
result_df:
id_df2 array_values
123 [map(abc,abc_map_value), map(fgh,fgh_map_value)]
456 [map(cde,cde_map_value)]
我可以用火花SQL這樣做,但我不認爲這是最有效的方式ID是獨一無二的。
有沒有辦法在內存中存儲鍵/值字典來查找基於鍵的值而不是進行連接?它會比加入更有效嗎?
您可以使用[廣播變量(http://stackoverflow.com/questions/40673773/how-to-use-a- broadcast-collection-in-a-udf/40676271#40676271)作爲查找表,如果你的數據集不是太大。 – mtoto