PySpark: отправка каждого раздела на один и тот же рабочий узел для обработки - PullRequest
1 голос
/ 29 апреля 2020

У меня есть фрейм данных PySpark с 500+ кластерами в следующем формате:

-------------------------------
| Cluster_num | text           |
-------------------------------
| 1           | some_text_1    |
-------------------------------
| 1           | some_text_2    |
-------------------------------
| 2           | some_text_3    |
-------------------------------
| 2           | some_text_4    |
-------------------------------

Я хочу применить gensim.summarization к тексту каждого кластера, чтобы получить сводку по каждому кластеру. Набор данных огромен, и мы хотим его максимально распараллелить. Gensim установлен на всех рабочих узлах.

Есть ли способ применить эту функцию таким образом, чтобы весь текст одного и того же кластера попадал на одни и те же рабочие узлы, где он мог бы применить к нему эту сводную функцию?

Я пытался преобразовать его в RDD и затем использовать partitionBy и reduceByKey, но не смог заставить его работать.

...