операция искрового соединения для двух фреймов данных

когда df1 и df2 имеют одинаковые строки и
df1 и df2 не имеют повторяющегося значения
какова сложность операции соединения df1.join (df2)?
мой вопрос - взять O (n ^ 2)

и можно ли отсортировать фрейм данных и повысить его производительность? если это не так, как можно быстрее присоединиться к im pyspark?


person Community    schedule 20.09.2019    source источник


Ответы (1)


Даже если df1 и df2 имеют одинаковый набор строк и не разделены на разделы, для их объединения Spark должен разделить оба фрейма данных на ключ объединения. Начиная с версии Spark 2.3, сортировка-слияние присоединяется к рабочей лошадке соединения по умолчанию, для чего потребуется разделить фреймы данных и отсортировать их по ключу соединения, а затем будет выполнено соединение. Оба фрейма данных также должны быть размещены в одном месте для соединения сортировка-слияние.

и можно ли отсортировать фрейм данных и повысить его производительность? если это не так, как можно быстрее присоединиться к im pyspark?

Да, если вы видите, что определенный фрейм данных снова и снова используется в соединении с использованием одного и того же ключа соединения, вы можете перераспределить фрейм данных по ключу соединения и кэшировать его для дальнейшего использования. Пожалуйста, обратитесь к приведенной ниже ссылке для получения более подробной информации.

https://deepsense.ai/optimize-spark-with-distribute-by-and-cluster-by/

person ravi malhotra    schedule 20.09.2019
comment
is shuffle hash join - это соединение pyspark по умолчанию? - person ; 23.09.2019
comment
больше нет .. Начиная с Spark2.3, объединение сортировка-слияние является объединением по умолчанию, учитывая, что ключ объединения можно сортировать. - person ravi malhotra; 24.09.2019
comment
@dailygirlflower, пожалуйста, примите ответ или дайте мне знать, если требуются дополнительные сведения. - person ravi malhotra; 24.09.2019