第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Spark Sql 對(duì) null 值多組測(cè)試用例分析

標(biāo)簽:
Spark

有很多种情况,spark sql语句中的某些字段是空的,想要知道sql中聚合函数对null的影响结果,下面做了几个测试用例。

webp

image.png

测试用例

准备三个case class

case class ChildLog(id:String,name:String)case class WifeLog(id:String,name:String,child:ChildLog)case class UserLog(id:String,name:String,wife:WifeLog)

准备三组数据

val list1 = Array(UserLog("1", "lake", null), UserLog("2", "admin", null))
val list2 = Array(UserLog("1", "lake", WifeLog(null,null,null)), UserLog("2", "admin", WifeLog("3", "coco",null)))
val list3 = Array(UserLog("1", "lake", WifeLog(null,null,ChildLog("hi","na"))), UserLog("2", "admin", WifeLog("3", "coco",null)))

初始化环境

val sparkConf = new SparkConf()
      .setMaster("local[1]")
      .setAppName("testNull")

    val spark = SparkSession
      .builder
      .config(sparkConf)
      .getOrCreate()

    val sc = spark.sparkContext

第一组

  1. 测试count对null值的结果

val list1 = Array(UserLog("1", "lake", null), UserLog("2", "admin", WifeLog("3", "coco",null)))
val listRdd = sc.parallelize(list3)

listRdd.toDS().createTempView("log")

spark.sql("select count(wife) from log").show

结果(对空值会忽略)

+-----------+|count(wife)|+-----------+|          1|+-----------+

结论(如下两个语句相等)

spark.sql("select count(wife) from log").showspark.sql("select count(wife) from log where wife IS NOT NULL").show
  1. 如何统计null

spark.sql("select count(wife IS NULL) from log where").show

结果

+---------------------+|count((wife IS NULL))|+---------------------+|                    1|+---------------------+

第二组

  1. 测试子类case

spark.sql("select count(wife.id) from log").show

结果

+----------------------+|count(wife.id AS `id`)|+----------------------+|                     1|+----------------------+

结论(对子类case的空值也会忽略,对空的子类也会忽略)

第三组

测试多级子case的影响

spark.sql("select count(wife.child.id) from log").show

结果

+----------------------------+|count(wife.child.id AS `id`)|+----------------------------+|                           1|+----------------------------+

结论(不论子级多深,只统计非空值的数据)



作者:dounine
链接:https://www.jianshu.com/p/38e85cbf0498


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消