我需要使用scala对表执行一些健全性检查。
我的样本表是:
可以使用以下代码生成:
val df = Seq(
(1, "", "13-05-2020", Some("CSE")),
(2, "PQR", "14022019", None),
(3, "XYZ", "25-01-2018", Some(""))
).toDF("ID", "NAME", "Joining Date", "Branch")
现在,我想对所有列执行空检查和日期检查。我希望输出像:
我能够生成这样的Dataframe:
请帮我把数据填入这个数据框。
1条答案
按热度按时间afdcj2ne1#
据我所知,您需要对Dataframe的所有列计算一些通用测试。
你似乎认为这是一个空字符串
""
就像一个空值。因此,我将首先用null值替换空字符串(仅适用于string类型的列)。然后,为了代码更清晰,我将为每个要执行的检查定义一个函数。如果它们不是您想要的,请随意调整它们:
最后,您可以将它们以通用方式应用于所有列,如下所示:
同时产生你所期望的:
我唯一的警告是不要在具有太多不同值的列上使用它。事实上,由于它们都聚合到一行中,这将非常缓慢或更糟,从而导致oom异常。