记学习Flink遇到的坑(Java篇)

1、keyby()中的“fields”有限定条件(以下类型不能作为key):
1)POJO类,且没有实现hashCode函数
2)任意形式的数组类型
3)基本数据类型(int,long之类)
(最重要的是如果你用了对象作为key,那么这个对象的属性必须是public的,并且这个对象必须有public的无参构造方法,坑啊,当初找的flink官网的wordcount例子,到了自己电脑上还跑不通,找了半天毛病,官网上也不说清楚)

2、在flink的batch处理中,‘count()’, ‘collect()’, and 'print()‘之类的里面都已经默认包含了execute()方法。所以execute和’count()’, ‘collect()’, and 'print()‘只能存在一个。
但是在输出端又必须有一个sink,所以只能用除了’count()’, ‘collect()’, and 'print()'这三个之外的sink,比如write之类。这是写一个计数器demo时遇到的:

	//不能和execute()同时存在
    //result.print();

    //可以和execute()同时存在
    result.writeAsText("C:\\Users\\Administrator\\Desktop\\a");

    JobExecutionResult execute = env.execute();
    int nums = execute.getAccumulatorResult("nums");
    System.out.println(nums);

3、在flink中的Tuple2的包是import org.apache.flink.api.java.tuple.Tuple2;
而不是import scala.Tuple2; 这个,导错了运行时绝对报错。

后续有问题会继续补充,且学且珍惜吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值