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的主要内容,如果未能解决你的问题,请参考以下文章

将 Spark DataFrame 数据分成单独的文件

如何将二进制文件更改为 RDD 或 Dataframe?

如何从 PySpark Dataframe 中删除重复项并将剩余列值更改为 null

将Spark Dataframe转换为Scala Map集合

Spark SQL中Dataframe join操作含null值的列

Spark DataFrame 中 === null 和 isNull 的区别