Как заполнить значения столбца в зависимости от случая? - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть следующий 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

Как я могу это сделать?

...