毎回忘れるPySparkでの欠損処理の書き方と注意点について、個人的な備忘録です。
1. 前提
こちら相当の準備ができていることを前提にします
Google ColaboratoryでPySpark環境構築(v3.2.1) - 雑記 in hibernation
2. PySparkの欠損補完
こんな感じの適当な欠損データがあったとします。
sdf_na = ( sdf_input # 適当に欠損を作る .withColumn("weight", fn.when(fn.col("weight")>60, fn.lit(None)).otherwise(fn.col("weight"))) .withColumn("height", fn.when(fn.col("height")>160, fn.lit(None)).otherwise(fn.col("height"))) .withColumn("time", fn.when(fn.col("time")>75, fn.lit(None)).otherwise(fn.col("time"))) ) sdf_na.show()
+----+-----+---+------+------+----+ |name|class|sex|weight|height|time| +----+-----+---+------+------+----+ | aaa| A| F| 45| 150|null| | bbb| A| M| 50| 160|null| | ccc| A| F| 55| 155| 74| | ddd| B| M| null| null|null| | eee| B| F| 51| 158| 65| | fff| B| M| 40| 155| 68| | ggg| C| F| null| null|null| | hhh| C| M| null| null|null| |iiii| C| F| 52| null| 73| +----+-----+---+------+------+----+続きを読む