如何检查特定的IP地址属于PySpark数据帧中的哪个范围?

时间:2019-03-16 06:03:05

标签: python-3.x pyspark apache-spark-sql

我有2个PySpark数据帧。第二个数据帧由IP地址组成,第一个数据帧具有3列,第1列的起始IP地址和第2列的结束IP地址,第3列具有国家/地区名称。

现在我必须检查第二个数据帧ip地址列到第一个数据帧列,以了解它属于哪个国家?

Please check the image for more details

2 个答案:

答案 0 :(得分:0)

您可以使用交叉连接和udf过滤属于ip范围的记录

df1.crossJoin(df2).where( isInIpRangeUdf(df1.col("start_ip"), df1.col("end_ip"),df2.col("ip_address")) == True).show()

答案 1 :(得分:0)

如果要检查IP来自哪个国家/地区,请使用python geoip2 框架。 有关更多信息,请参见:-https://packagist.org/packages/geoip2/geoip2