转自钉钉群21789141:请教个问题,tableEnvironment.registerDataStream(table)为什么和tableEnvironment.registerTable(table)一样也能接受一个table参数?
下图的代码编译是通过的。
tableEnvironment.registerDataStream()我理解应该传入DataStream而不是table。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
星灿:scala的隐式类型转换
问: 隐式转换导致虽然编译是通过的,但是tableEnvironment.registerDataStream(table)并不能执行成功,会报错table is not an append-only table...所以这两种api调用并不等价。不清楚原因是什么。
可能尝试隐式地把table转成append only stream。其实并不行。table业务上是retract的。
答: 是的,默认是转成append table。你可以查看一下o.a.f.table.api.scala.package.scala文件
韩非:Flink现有版本可能有点问题,Blink开源后,应该没什么大的问题
Jerome:blink只是一个分支,不是之前大沙还是建议用flink的主干吗
个人觉得flink代码的成熟性还是蛮差的,相对于spark,很多逻辑都是因为源码没有做异常处理导致
韩非: 同意。个人觉得Flink api加上Scala隐式转换,坑点较多。官方api文档举得例子比较简单,反映不出这些坑点。