Мне нужно написать высокоэффективную программу для фильтрации элементов в 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 для элементов, которые уже удовлетворяют препятствию, следовательно, уменьшите сравнение) У меня вопрос: как сделать это быстрее (по сравнению с моей текущей реализацией)?