Вы можете отфильтровать строки с помощью where
, reduce
и понимания списка.Например, для следующего кадра данных:
df = sc.parallelize([
(0.4, 0.3),
(None, 0.11),
(9.7, None),
(None, None)
]).toDF(["A", "B"])
df.show()
+----+----+
| A| B|
+----+----+
| 0.4| 0.3|
|null|0.11|
| 9.7|null|
|null|null|
+----+----+
Фильтрация строк с некоторым значением null
может быть достигнута с помощью:
import pyspark.sql.functions as f
from functools import reduce
df.where(reduce(lambda x, y: x | y, (f.col(x).isNull() for x in df.columns))).show()
, что дает:
+----+----+
| A| B|
+----+----+
|null|0.11|
| 9.7|null|
|null|null|
+----+----+
В условии вы должны указать, есть ли (или, |), все (и, &) и т. Д.