У меня есть фрейм данных 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
, но не смог заставить его работать.