pyflink求最大值

本文介绍了如何在PyFlink中使用DataStreamAPI执行数据处理,包括按key分区、sum和max聚合(value列),展示了如何获取最大值和最大值对应的行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[root@master pyflink]# cat test_max.py 
from pyflink.common import Types
from pyflink.datastream import StreamExecutionEnvironment

env = StreamExecutionEnvironment.get_execution_environment()
# env.set_parallelism(1)
# env.set_parallelism(2)
ds = env.from_collection(
    [('a', 'id=1', 1), ('a', 'id=2', 5), ('a', 'id=3', 3), ('b', 'home=1', 1), ('b', 'home=2', 4),('b', 'home=2', 2)],
    type_info=Types.ROW_NAMED(["key", "url", "value"], [Types.STRING(), Types.STRING(), Types.INT()]))
# sum的参数可以是列名,也可以是position
# 该方法通过第一位(也就是key列)分区后,然后根据value列相加分别统计总数
result = ds.key_by(lambda x: x[0]).sum("value")
result1 = ds.key_by(lambda x: x[0]).max("value")
#result2 = ds.key_by(lambda x: x[0]).max_by("value")
result1.print("max:")
#result2.print("max_by:")
env.execute()
[root@master pyflink]# python3 test_max.py 


max::2> +I[a,id=1,1]
max::2> +I[a,id=1,5]
max::2> +I[a,id=1,5]
max::1> +I[b,home=1,1]
max::1> +I[b,home=1,4]
max::1> +I[b,home=1,4]
[root@master pyflink]# 
[root@master pyflink]# 
[root@master pyflink]#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值