【发布时间】:2020-02-05 11:23:23
【问题描述】:
我们在日常活动中使用 spark。在处理过程中,我们希望根据描述列中的一些正则表达式提取地理信息。我们试图找出可以提取 CITY 信息的正则表达式,最终我们为每个城市 CA、NY 等提供了数百个正则表达式。
我们为城市 CA 和 NY 等创建了正则表达式映射,并通过广播将这些数据加载到 spark 中。 Ann 在自定义 udf 中使用这些规则来提取城市信息。
问题是当规则增加时,执行时间开始增加,因此寻找一些可以以分布式方式执行规则的选项。
我们也可以将基于相同规则的数据提取扩展到其他领域。
我还尝试了“Drools”集成火花,如果我没有找到任何优化的解决方案,我可能会选择这个。
期待!!!
R, 克里什
【问题讨论】:
-
您可以尝试通过尽可能使用字符串插值和/或编写更紧凑的正则表达式来最小化正则表达式的数量。然后您可以使用数据帧映射和模式匹配,而无需 UDF,如 here 所示
标签: apache-spark distributed-computing rule-engine business-rules