You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中过滤数据表中的无效IP地址?

过滤数据表中的非合法IP地址内容

要清理表中src和dst列里的非IP无效内容,最可靠的方式是用正则表达式匹配合法IPv4地址,只保留符合规范的记录。

步骤1:定义合法IPv4的正则模式

标准IPv4地址的正则匹配规则如下,会严格校验四段0-255的数字格式:

ip_regex = r"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"

步骤2:在Datatable中应用正则过滤

基于你已有的过滤结果dt4new1,使用rlike(正则匹配)方法对src和dst列做校验,只保留两列都符合IP格式的记录:

dt4new_clean = dt4new1.where(f"src rlike '{ip_regex}' and dst rlike '{ip_regex}'")

额外说明

  • 该正则会自动排除所有非IP格式内容,比如"abc"、"192.168"、"1"这类无效值
  • 如果需要禁止带前导零的IP(如010.0.0.1),可以改用以下正则:
    ip_regex_no_leading_zero = r"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
    

内容的提问来源于stack exchange,提问作者Decurro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:30:48