Выполнение нескольких правил регулярных выражений через Spark для различных полей - PullRequest
0 голосов
/ 05 февраля 2020

Мы используем искры для нашей повседневной деятельности. Во время обработки мы хотим извлечь географическую информацию на основе некоторых регулярных выражений из столбца описания. Мы попытались выяснить регулярные выражения, с помощью которых мы можем извлечь информацию о CITY, и в результате мы получили сотни регулярных выражений для каждого города CA, NY, et c.

Мы создали отображение регулярных выражений для городов CA и NY и т. Д. И загрузили эти данные в искру с помощью широкого преобразования. Энн использовала эти правила в пользовательских файлах udf для извлечения информации о городе.

Проблема заключается в том, что когда правила увеличиваются, время выполнения начинает увеличиваться, поэтому ищем какой-то вариант, когда правила могут выполняться распределенным образом.

Мы можем распространить извлечение данных на основе того же правила и на другие поля.

Я также попробовал искру интеграции "Drools", если я не найду оптимизированного решения, я могу go с этим.

С нетерпением жду !!!

R, Kri sh

1 Ответ

0 голосов
/ 05 февраля 2020

Пожалуйста, убедитесь, что ваша работа Spark использует много параллелизма. Без этого небольшого уровня медлительности будет чувствовать себя больше. Теоретически обработка регулярных выражений не должна быть такой тяжелой, и если она выполняется независимо от других записей, то она также будет масштабируемой. Пожалуйста, не запускайте регулярные выражения для большого документа, лучше запускайте его для разных частей документа или параллельно для небольших документов.

Пожалуйста, проверьте, разделены ли ваши данные более чем в 3 раза по сравнению с количеством процессоров, используемых для Spark. работа. Также избегайте множества небольших перегородок.

Если задание Spark уже было оптимально распараллелено, и это просто вопрос слишком большого количества выполняемых регулярных выражений, тогда просто получите больший кластер и распараллелите его еще больше.

...