我有一个包含1000万行的Spark数据框,其中每行代表一个字母数字字符串,表示用户的id,例如:
602d38c9-7077-4ea1-bc8d-af5c965b4e85
我的目标是检查1000万个列表中是否还有其他ID aaad38c9-7087-4ef1-bc8d-af5c965b4e85
。
我希望每次搜索都能有效地进行搜索,而不是搜索所有1000万条记录。示例可以按字母顺序对记录进行排序,并要求SparkR仅在以a
而不是Universe开头的记录中进行搜索,以加快搜索速度并使其具有计算效率?
主要使用 SparkR 的任何解决方案,如果没有,那么任何Spark解决方案都会有所帮助
答案 0 :(得分:-1)
您可以在数据框列中使用rlike进行正则表达式搜索。
df.filter($"foo".rlike("regex"))
或者你可以将火花数据帧索引到solr中,它肯定会在几毫秒内搜索你的字符串。 https://github.com/lucidworks/spark-solr