spark处理hive数据排序问题

本文介绍了一段使用Spark、Scala和SQL处理Hive数据的入门代码,涉及DataFrame转Rdd操作。代码从Hive读取数据,按字段分组并排序,展示如何在Spark中执行SQL查询,将DataFrame转换为RDD并进行分组排序,同时强调在处理未知数据类型时需要注意的细节。
摘要由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)))

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值