Spark DF:關於Row中的數值獲取問題


//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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM