spark dataframe 将null 改为 nan
Posted sunhuahuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark dataframe 将null 改为 nan相关的知识,希望对你有一定的参考价值。
由于我要叠加rdd某列的数据,如果加数中出现nan,结果也需要是nan,nan可以做到,但我要处理的数据源中的nan是以null的形式出现的,null不能叠加,而且我也不能删掉含null的行,于是我用了sparksql 的 ISNULL和CASE WHEN方法:
Case When 方法:
如果obs_PRE_1h列有值则不变,没有则变为nan,注意这里的nan需要写成 float(‘NaN’)
SELECT (CASE WHEN ISNULL(obs_PRE_1h)=true THEN float(‘NaN‘) ELSE obs_PRE_1h END) as obs,(CASE WHEN ISNULL(fcst_PRE_1h)=true THEN float(‘NaN‘) ELSE fcst_PRE_1h END) as fcst FROM parquetFile
源dataframe是这样的:
结果:
以上是关于spark dataframe 将null 改为 nan的主要内容,如果未能解决你的问题,请参考以下文章
如何从 PySpark Dataframe 中删除重复项并将剩余列值更改为 null
将Spark Dataframe转换为Scala Map集合