Операция pyspark groupby не генерирует уникальные групповые ключи для больших наборов данных
Я вижу повторяющиеся ключи в конечном выводе.
new_df = df.select('key','value') \
.where(...) \
.groupBy('key') \
.count()
Например, приведенный выше запрос возвращает несколько строк для столбца groupBy (ключ). Тип данных для столбца groupby ('key') - строка.
Я сохраняю выходные данные в CSV, выполняя
new_df.write.format("csv") \
.option("header", "true") \
.mode("Overwrite") \
.save(CSV_LOCAL_PATH)
, например, выходные данные в CSV содержат повторяющиеся строки
key1, 10
key2, 20
key1, 05
Проверено в Spark 2.4.3 и 2.3. Есть дубликаты. Там нет разницы в ключах. Это происходит для нескольких ключей.
Когда я подсчитываю строки для определенных ключей, это дает 1.
new_df.select('key','total')\
.where((col("key") == "key1"))\
.count()
Я не уверен, что настройки пиарроу имеют какое-либо значение. Я бы включил это раньше. Я попытался включить и отключить pyarrow, но результат один и тот же.
spark.conf.set ("spark.sql.execution.arrow.enabled", "true")