1. 程式人生 > >spark dataframe 將null 改為 nan

spark dataframe 將null 改為 nan

case 數據源 nbsp select obs sel lec taf 疊加

由於我要疊加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