spark sql 把字符串类型改为数值类型 并按照此列进行排序

24 篇文章 0 订阅

只需要 order by CAST(cc.XX as INT)
XX为排序列名

val data4 = Seq(
      ("ming", "20190101004050", "man"),
      ("min", "20190101004050", "man"),
      ("mi", "20190101004050", "man"),
      ("kun", "20190102014050", "woman"),
      ("kun", "20190102012250", "man"),
      ("tian", "20190201025050", "man"),
      ("yarn", "20190205235050", "woman"),
      ("raa", "20190205113250", "man"),
      ("raa", "20190205115050", "woman"),
      ("kun", "20190201235050", "woman")
    ).toDF("name", "t", "gender")

    data4.show()

    data4.createOrReplaceTempView(s"data0")

    val hourdata = Seq(
      ("0"),("1"),("2"),("3"), ("4"),("5"),
      ("6"),("7"),("8"),("9"),("10"),("11"),("12"),
      ("13"),("14"),("15"),("16"),("17"),("18"),
      ("19"),("20"),("21"),("22"),("23")
    ).toDF("hour")
    hourdata.createOrReplaceTempView(s"hourdata")
    hourdata.show()

在这里插入图片描述在这里插入图片描述

            val frame = spark.sql(
              s"select ”2019“ as dayId, * from "+
                s"("+
              s"select * from"+
                s" (select  " +
                s"count(name) as ${name}_cnt, count(distinct $name) as ${name}_distinct_cnt,"+
                s"count(gender) as ${gender}_cnt, count(distinct $gender) as ${gender}_distinct_cnt,"+
                s"aa.hour as hourId from"+
                s"(select name, gender" +
                s"hour(transformDateNew(t)) as hour " +
                s"from data0) aa group by aa.hour" +
                s") bb " +
                s" full outer join hourdata h on bb.hourId=h.hour"+
                s") cc  order by CAST(cc.hour as INT)"+
                s"").drop("hourId").na.fill(0)

结果:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值