почему некоторые ноты в искре работают очень медленно? и почему множественное выполнение в одной и той же ситуации имеет разное время выполнения? - PullRequest
0 голосов
/ 26 мая 2020

Мой вопрос касается времени выполнения кодов pyspark в zeppelin.

У меня есть несколько заметок, и я работаю с некоторыми SQL в нем. в одной из своих заметок я конвертирую свой фрейм данных в панду с помощью функции .to pandas () . размер моих данных составляет около 600 мегабайт.

моя проблема в том, что это занимает много времени.

если я использую выборку, например, вот так:

df.sample(False, 0.7).toPandas()

it работает правильно и в приемлемое время.

другая странность - когда я запускаю эту заметку несколько раз, иногда она работает быстро, а иногда медленно. например, при первом запуске интерпретатора pyspark после перезапуска он работает быстрее.

как я могу работать с zeppelin в стабильном состоянии? и какие параметры эффективны для запуска искрового кода за приемлемое время?

1 Ответ

0 голосов
/ 10 июня 2020

Проблема здесь не в цеппелине, а в тебе как программисте. Spark - это распределенный (кластерный) механизм анализа данных, написанный на Scala, который, следовательно, работает в JVM. Pyspark - это Python API для Spark, который использует библиотеку Py4j для предоставления интерфейса для объектов JVM.

Такие методы, как .toPandas() или .collect(), возвращают объект python, который является не просто интерфейсом для Объекты JVM (т.е. он действительно содержит ваши данные). Они являются дорогостоящими, поскольку требуют передачи ваших (распределенных) данных из JVM в интерпретатор python внутри драйвера искры. Поэтому вы должны использовать его только в том случае, если результирующие данные малы и работают как можно дольше с фреймами данных pyspark.

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

...