我在PySpark中有一个 Dataframe ,其中包含空白、Null和Nan。我想删除包含这些内容的行。我尝试了下面的命令,但是,似乎没有任何效果。
myDF.na.drop().show()
myDF.na.drop(how='any').show()
下面是数据框:
+---+----------+----------+-----+-----+
|age| category| date|empId| name|
+---+----------+----------+-----+-----+
| 25|electronic|17-01-2018| 101| abc|
| 24| sports|16-01-2018| 102| def|
| 23|electronic|17-01-2018| 103| hhh|
| 23|electronic|16-01-2018| 104| yyy|
| 29| men|12-01-2018| 105| ajay|
| 31| kids|17-01-2018| 106|vijay|
| | Men| nan| 107|Sumit|
+---+----------+----------+-----+-----+
我错过了什么?什么是最好的方法来处理NULL,Nan或空白空间,使在实际计算中没有问题?
2条答案
按热度按时间tcbh2hod1#
NaN
(不是数字)有不同的含义,NULL
和空字符串只是一个普通值(可以通过csv阅读器自动转换为NULL),因此na.drop
不会匹配这些值。您可以将全部转换为null并删除
rpppsulh2#
也许在你的情况下这并不重要,但这段代码(修改了Alper t. Turker的答案)可以相应地处理不同的数据类型。当然,数据类型可以根据你的DataFrame而变化。(在Spark版本上测试:第2.4节)