У меня есть следующий DataFrame в PySpark:
id typename lat1 lon1 lat2 lon2 dist radius
1 aaa 41.2 2.1 41.3 2.2 10 20
1 bbb 41.2 2.1 41.3 2.2 10 20
1 ccc 41.2 2.1 41.3 2.2 10 20
2 aaa 41.1 2.2 41.3 2.2 10 20
2 ccc 41.1 2.2 41.3 2.2 10 20
3 aaa 42.1 2.2 41.3 2.2 22 20
Я хочу добавить новый столбец is_inside_radius
, однако значение 1 должно появляться только один раз для той же комбинации.
import pyspark.sql.functions as func
df \
.withColumn("is_inside",
func.when(
(func.col("dist") <= func.col("radius")), 1
).otherwise(0))
Ожидаемый результат:
id typename lat1 lon1 lat2 lon2 dist radius is_inside
1 aaa 41.2 2.1 41.3 2.2 10 20 1
1 bbb 41.2 2.1 41.3 2.2 10 20 0
1 ccc 41.2 2.1 41.3 2.2 10 20 0
2 aaa 41.1 2.2 41.3 2.2 10 20 1
2 ccc 41.1 2.2 41.3 2.2 10 20 0
3 aaa 42.1 2.2 41.3 2.2 22 20 0
Как я могу это сделать?