Scala spark dataframe pivot postgresql数据库读取数据创建透视表时丢失数据问题解决方法

我用Scala写spark从postgresql数据库读出来的数据是这样的

 然后我想建立一个透视表,以userid和modelid进行分组,分别统计buy和like的cishu,于是我这样写

val one: DataFrame = xingwei.groupBy("userid", "modelid").pivot("xingwei",Seq("buy","like")).sum("cishu")
one.show()

然后呢,数据丢失,就是找不到,我怎么也理解不了,网上也没有说,我不断查找不断试验,最终发现了一个大坑,Scala spark读取postgresql数据的char类型时会把空格也读进来,所以就找不到“buy”和“like”,找到的是“buy  ”和“like ”,所以想建立透视表,我们需要把空格也加上,然后再换dataframe表头才行

val one: DataFrame = xingwei.groupBy("userid", "modelid").pivot("xingwei",Seq("buy  ","like ")).sum("cishu")
one.show()
val two: DataFrame = one.withColumnRenamed("buy  ", "buy").withColumnRenamed("like ", "like")
two.show()

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值