Spark DF:關於Row中的數值獲取問題
阿新 • • 發佈:2018-12-16
//json檔案 //{"page_id":"87","pay_category_ids":"99","pay_product_ids":"96","city_id":5} //{"pay_category_ids":"74","city_id":0} val df = sparkSession.read.json("./src/data/test") df.show() df.rdd.foreach(row => { println("getAs: "+row.getAs[String]("page_id")) println("isNull: "+row.isNullAt(1)) // val tp = row.getAs[String]("page_id") println("==Null:",tp == null) println("getLong:", row.getString(1)) })
突然想起之前專案中有些許問題未處理
今天研究一番
從row中get值時, 經常遇到空的問題
簡單總結如下:
get數值型別:如果為空, 則轉化為0
判空, 建議使用row.isNullAt(index)
get字串型別:如果為空則為null
判空建議用:StringUtils.isEmpty() (出現""的情況)
總結:獲取值用getAsT
判空用row.isNullAt
以及StringUtils.isEmpty()