Эффективный буквенно-цифровой поиск sparkR - PullRequest
0 голосов
/ 04 июня 2018

У меня есть во фрейме данных Spark с 10 миллионами строк, где каждая строка представляет буквенно-цифровую строку, указывающую идентификатор пользователя, например: 602d38c9-7077-4ea1-bc8d-af5c965b4e85 Моя цель - проверить, присутствует ли другой идентификатор, например aaad38c9-7087-4ef1-bc8d-af5c965b4e85, вСписок 10 миллионов.

Я бы хотел сделать это эффективно, а не искать все 10 миллионов записей каждый раз, когда происходит поиск.Например, я могу отсортировать свои записи в алфавитном порядке и попросить SparkR искать только в записях, которые начинаются с a вместо юниверса, чтобы ускорить поиск и сделать его вычислительно эффективным?

Любые решения, в основном использующие SparkR , если нет, то любое решение Spark будет полезно

1 Ответ

0 голосов
/ 04 июня 2018

Вы можете использовать rlike, который используется для поиска регулярных выражений в столбце данных.

df.filter($"foo".rlike("regex"))

Или Вы можете проиндексировать искровой кадр данных в solr, который определенно будет искать вашу строку в течение нескольких миллисекунд.https://github.com/lucidworks/spark-solr

...