spark处理hive数据排序问题

新入坑数据挖掘,从一段spark入门级数据处理代码开始。涉及语言Scala、Sql,并涉及将DataFrame转换为Rdd,实现的是从hive读取数据,并根据字段进行分组排序的功能,代码如下:val df_sr = spark.sql(s"""SELECT pushConfigId, updatedFROM default.ods_flow_rye_PushScene...
摘要由CSDN通过智能技术生成

新入坑数据挖掘,从一段spark入门级数据处理代码开始。
涉及语言Scala、Sql,并涉及将DataFrame转换为Rdd,实现的是从hive读取数据,并根据字段进行分组排序的功能,代码如下:

val df_sr = spark.sql(s"""
SELECT  
    pushConfigId, 
    updated
FROM default.ods_flow_rye_PushScene_$YTD()
   limit 1000
""")
val df = df_sr.rdd.map(r=>(r(0),r(1)))
val groups=df.groupByKey();
val groupsSort=groups.map(tu=>{
    val key=tu._1
    val values=tu._2
    val sortValues=values.toList.sortWith(_.asInstanceOf[Long] > _.asInstanceOf[Long])
    (key,sortValues)
})
groupsSort.collect.foreach(value=>{
print(value._1);
value._2.foreach(v=>print("\t"+v));
println()
})

其中spark.sql使我们可以直接使用sql语句查询数据库数据,并将数据一DataFrame(数据框)形式呈现,如上代码仅仅查询了两个字段,根据 pushConfigId进行分组,然后对updated排序取top4数据;

其中df_sr.rdd.map(r=>(r(0),r(1)))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值