我在集群中生活着一个巨大的Spark数据框。 count
显示有2400万行。还有900多个列。
这些列大多数为空。我正在考虑删除大部分为空的列。或获取并非大部分为空的列的列表。
我当前正在遍历列:
for col in ALL_COLUMNS[1:]:
test_df = df.select(col)
NNcount = test_df.filter(test_df[col].isin(["NULL", "", None]) == False).count()
# more logic ..
然后选择问题是,此循环的每次迭代都需要几分钟。
是否有更快的方法来基于空值删除列?最好不需要遍历整个列-而且显然比这更优雅。
也许答案已经在那里,但经过一些搜索后我找不到匹配的内容。谢谢!