Spark-redis: время записи данных на фрейм слишком медленное - PullRequest
0 голосов
/ 24 января 2019

Я - пользователь Apache Spark / Redis, и недавно я попытался spark-redis для проекта.Программа генерирует фреймы данных PySpark с приблизительно 3 миллионами строк, которые я записываю в базу данных Redis с помощью команды

df.write \
  .format("org.apache.spark.sql.redis") \
  .option("table", "person") \
  .option("key.column", "name") \
  .save()

, как предложено на странице фрейма проекта GitHub .

Однако я получаю несогласованное время записи для одной и той же конфигурации кластера Spark (одинаковое количество экземпляров EC2 и типов экземпляров).Иногда это происходит очень быстро, иногда слишком медленно.Есть ли способ ускорить этот процесс и получить согласованное время записи?Интересно, происходит ли это медленно, когда внутри уже много ключей, но это не должно быть проблемой для хеш-таблицы, не так ли?

1 Ответ

0 голосов
/ 24 января 2019

Это может быть проблемой с вашей стратегией секционирования.

Проверьте число секций "df" перед записью и посмотрите, есть ли связь между количеством секций и временем выполнения.

Если это так, разделение вашего "df" с подходящей стратегией разделения (перераспределение на фиксированное количество разделов или повторное разбиение на основе значения столбца) должно решить проблему.

Надеюсьэто помогает.

...