Допустим, у нас есть Spark-фрейм данных df со столбцом col, значения которого в этом столбце только 0 и 1. Как мы можем выбрать все строки, где col == 1, а также 50% строк, где col == 0?50% населения с col == 0 должны быть выбраны случайным образом.
Метод выборки допускает случайный выбор 50% строк, но никакие другие условия не могут быть наложены.
Решение, которое я в настоящее время решаюесть следующее, что кажется мне немного уродливым.Интересно, есть ли лучшее решение?
from pyspark.sql import functions as F
df = df.withColumn('uniform', F.rand())
df = df.filter((df.uniform<0.5) | (df.col==1))