通过Spark为各个字段执行多个正则表达式规则

问题描述 投票:0回答:1

我们在日常活动中使用spark。在处理过程中,我们希望基于描述列中的一些正则表达式提取地理信息。我们试图找出可用来提取CITY信息的正则表达式,最终,每个城市CA,NY等都有数百个正则表达式。

我们已经为城市CA和NY等创建了正则表达式的映射,并通过广泛的转换将该数据加载到spark中。安在自定义udfs中使用了这些规则来提取城市信息。

问题是规则增加时,执行时间开始增加,因此寻找一些可以以分布式方式执行规则的选项。

我们也可以将基于规则的数据提取扩展到其他字段。

我还尝试过“ Drools”集成火花,以防万一我找不到任何优化的解决方案。

期待!

R,克里希语

apache-spark distributed-computing rule-engine business-rules
1个回答
0
投票

请确保您的Spark作业正在使用大量并行性。没有这种小程度的缓慢度,感觉会更大。从理论上讲,正则表达式处理不应该那么繁重,并且如果在记录(独立于其他记录)上独立运行,那么它也将具有可伸缩性。请避免在大文档上运行正则表达式,而应在文档的不同部分或小文档上并行运行。

请检查您的数据分区是否超过Spark作业使用的CPU数量的3倍。也要避免许多小的分区。

© www.soinside.com 2019 - 2024. All rights reserved.