Фильтр pyspark rdd - PullRequest
       65

Фильтр pyspark rdd

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

Мне нужно написать высокоэффективную программу для фильтрации элементов в rdd, которая не удовлетворяет препятствиям и возвращает ДОСТАТОЧНОЕ количество элементов в result_rdd. Если в filter_hashes недостаточно элементов, то мне нужно смягчить препятствие, чтобы меньше элементов было отфильтровано из data_hashes. Следующее похоже на мою программу

while True:
  filter_hashes = data_hashes.filter(somefunc(offset))
  count = # element in filter_hashes

  if count < someNum
    offset += 1 # soften the hurdle
  else
    break

result_rdd = filter_hashes.map(dosomething)

return result_rdd

Чтобы иметь высокую эффективность времени, мне нужно сделать все возможное, чтобы уменьшить размер rdd перед преобразованием (преобразование cuz требует линейного сканирования) и уменьшить количество трансформация. Итак, что Я ХОЧУ СДЕЛАТЬ, так это на каждой итерации удалить элементы, которые удовлетворяют препятствию, и сохранить их в result_rdd (таким образом я могу избежать вызова somefun c для элементов, которые уже удовлетворяют препятствию, следовательно, уменьшите сравнение) У меня вопрос: как сделать это быстрее (по сравнению с моей текущей реализацией)?

...