Является ли порядок карты в Spark детерминированным c?
Другими словами, если бы я позвонил:
df = spark.createDataFrame(
[[{"a": 1, "b": 2}]],
["dictionary_col"]
)
df.select(
F.map_keys("dictionary_col"),
F.map_values("dictionary_col"),
)
Могу ли я получить что-то вроде
_key___|___value_
[a,b] | [1,2]
или
_key___|___value_
[b,a] | [2,1]
Или есть вероятность того, что словарь будет «зашифрован» между map_keys и вызовом map_values, что приведет к несоответствию в ключе / значении?
_key___|___value_
[a,b] | [2,1]
Например, это может быть потенциальная проблема c Выполнить: пример потенциальной проблемы c Выполнить:
{ a: 1, b: 2 } --> getKeys --> [a, b]
<shuffle> <---node crashes, reloads data --> { b:2, a:1 }
{ b:2, a:1 } --> getVals --> [2, 1]