一个Flink API的废弃引发的血案

来源:大数据技术与架构
作者:王知无&林夕_Yume

640?wx_fmt=jpeg

点击右侧关注,大数据开发领域最强公众号!
640?wx_fmt=jpeg

640?wx_fmt=png

点击右侧关注,暴走大数据!
640?wx_fmt=png



By  大数据技术与架构

场景描述:Flink API废弃后的一个问题。

大家担心的终于来了。

 

问题

前两天群友反应了一个问题:
Flink1.9进行了数据类型的转化, 目前使用的Type被弃用,推荐使用Datatypes类型,但是之前使用的Type类型的方法对应的schema typeinformation没有对应的API,无法使用。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

 

解决办法

整个问题的根本原因是废弃了一个tablesink的注册方法。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

解决方案如下:

640?wx_fmt=png
代码如下:

TableSink csvSink = new CsvTableSink("/path/to/file", "|");
String[] fieldNames = {"product", "amount"};

TypeInformation[] fieldTypes = {Types.STRING, Types.INT};

DataType[] newFieldType = {DataTypes.STRING(), DataTypes.INT()};
TypeInformation<?>[] newtypeInformations = TypeConversions.fromDataTypeToLegacyInfo(newFieldType);

// 也可以下面这样
//TypeInformation<?> str = LegacyTypeInfoDataTypeConverter.toLegacyTypeInfo(DataTypes.STRING());
//TypeInformation<?> integ = LegacyTypeInfoDataTypeConverter.toLegacyTypeInfo(DataTypes.INT());
//TypeInformation[] newTypInfo = {str, integ};
tableEnv.registerTableSink("RubberOrders", fieldNames, newtypeInformations, csvSink);

 

思考

没有最坑,只有更坑,请问Flink集群大家升级了几次了? u1F602.png

欢迎点赞+收藏+转发朋友圈素质三连

640?wx_fmt=jpeg640?wx_fmt=jpeg

文章不错?点个【在看】吧! ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王知无(import_bigdata)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值