Flink:找不到合适的方法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Flink:找不到合适的方法

2018-12-10 10:26:52 2759 1

我正在尝试在Flink的DataStream上应用每个窗口的功能。以下是我的代码

DataStream> data = ...
DataStream> freqCityChangeTransactions = data

.keyBy(0)
.timeWindow(Time.seconds(5))
.process(new MyProcessWindowFunction());

以下是我对MyProcessWindowFunction的实现

public static class MyProcessWindowFunction
extends ProcessWindowFunction, Tuple2, String, TimeWindow> {

public void process(String key,

        Context context,
        Iterable<Tuple2<String, String>> input,
        Collector<Tuple2<String, String>> out) {
    // Do something ...
}

}
但是,当我尝试通过maven编译上面的代码时,我收到以下错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project flink-examples: Compilation failure
[ERROR] /Users/furqan/Workspace/flink/src/main/java/com/baig/bank/Bank.java:[120,13] no suitable method found for process(com.baig.Bank.MyProcessWindowFunction)
[ERROR] method org.apache.flink.streaming.api.datastream.WindowedStream.process(org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction,R,org.apache.flink.api.java.tuple.Tuple,org.apache.flink.streaming.api.windowing.windows.TimeWindow>) is not applicable
ERROR R
ERROR)
[ERROR] method org.apache.flink.streaming.api.datastream.WindowedStream.process(org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction,R,org.apache.flink.api.java.tuple.Tuple,org.apache.flink.streaming.api.windowing.windows.TimeWindow>,org.apache.flink.api.common.typeinfo.TypeInformation) is not applicable
ERROR R
ERROR)
我正在使用Apache Flink 1.5.1版并在Mac上使用maven3编译Java代码。

取消 提交回答
全部回答(1)
  • flink小助手
    2019-07-17 23:19:03

    问题是keyBy中使用的KeySelector与ProcessWindowFunction中指定的密钥类型之间存在不匹配。您已使用Tuple2中的索引指定了密钥,因此,编译器无法推断密钥将是字符串。在这种情况下,Flink将密钥作为元组传递。

    有几种方法可以解决这个问题。如果按原样保留keyBy,则需要修改ProcessWindowFunction以使用Tuple作为键类型,如果要使用它,则必须将键转换为String。有点像((Tuple1)key).f0。更好的解决方案是使用更明确的键选择器,例如keyBy(t -> t.f0),以便在编译时将键称为字符串。

    0 0
相关问答

41

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 146751浏览量 回答数 41

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 232397浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 159470浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 340556浏览量 回答数 8

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 301160浏览量 回答数 119

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148561浏览量 回答数 22

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 658219浏览量 回答数 24

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 147557浏览量 回答数 31

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 309432浏览量 回答数 251

57

回答

Flink Forward Asia 2021 有奖问答

阿里云实时计算Flink 2021-12-29 17:30:44 469337浏览量 回答数 57
+关注
flink小助手
flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。
0
文章
377
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载