Python 3.x 如何在PySpark数据帧中检查特定ip地址属于哪个范围?

Python 3.x 如何在PySpark数据帧中检查特定ip地址属于哪个范围?,python-3.x,pyspark,apache-spark-sql,Python 3.x,Pyspark,Apache Spark Sql,我有2个PySpark数据帧。第二个数据帧由IP地址组成,第一个数据帧有3列,第一列起始IP地址和2列结束IP地址,第三列有国家名称 现在,我必须检查第2个数据帧ip地址列到第1个数据帧列,以了解它属于哪个国家 您可以使用交叉连接和udf来过滤属于ip范围的记录 df1.crossJoin(df2).where( isInIpRangeUdf(df1.col("start_ip"), df1.col("end_ip"),df2.col("ip_address")) == True).show()

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

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


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

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

如果您想检查ip来自哪个国家,请使用pythongeoip2框架。
欲了解更多信息,请参考:-

如果您可以粘贴数据框和您尝试过的代码,而不是屏幕截图,那将非常好。实际上我不知道如何做这件事。如果您能给我一些建议,那将非常有帮助。你对pyspark有基本了解吗?关于RDD和dataframe。是的……我在sql dataframe.Ok中有一个数据。这里的一个挑战是,没有可以连接两个数据帧的公共列。但是,我相信解决方案可能并不简单。如何编写udf函数。以及要在其中编写的代码。因为我得到了一个错误,比如没有定义名称'isInIpRangeUdf'