【发布时间】:2020-04-16 05:11:34
【问题描述】:
我有一个非常脏的 csv,其中有几列只有空值。
我想删除它们。我正在尝试选择列中空值计数不等于行数的所有列。
clean_df = bucketed_df.select([c for c in bucketed_df.columns if count(when(isnull(c), c)) not bucketed_df.count()])
但是,我收到此错误:
SyntaxError: invalid syntax
File "<command-2213215314329625>", line 1
clean_df = bucketed_df.select([c for c in bucketed_df.columns if count(when(isnull(c), c)) not bucketed_df.count()])
^
SyntaxError: invalid syntax
如果有人能帮我摆脱这些脏栏,那就太好了。
【问题讨论】:
-
这能回答你的问题吗? Drop if all entries in a spark dataframe's specific column is null 您可以简单地进行正常计数并检查哪些列返回 0。
-
其实可以,但是真的很慢。运行一个大约需要 10 分钟。不可行,因为我需要在许多数据集上多次执行此操作。
-
我认为您找不到比单次计数更快的解决方案,但可能会有更好的解决方案。
标签: python apache-spark pyspark data-cleaning