来源:大数据技术与架构
作者:王知无&林夕_Yume
By
大数据技术与架构
场景描述:Flink API废弃后的一个问题。
大家担心的终于来了。
问题
前两天群友反应了一个问题:
Flink1.9进行了数据类型的转化,
目前使用的Type被弃用,推荐使用Datatypes类型,但是之前使用的Type类型的方法对应的schema typeinformation没有对应的API,无法使用。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/dedb16bc30ef5ef7725246169ddce759.jpeg)
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/ba083050a69204a73d22d002f6832539.jpeg)
解决办法
整个问题的根本原因是废弃了一个tablesink的注册方法。
解决方案如下:
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/6cdc251c99375eebacc741b0af66981b.jpeg)
代码如下:
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](https://i-blog.csdnimg.cn/blog_migrate/d6f0f32199f9131affa08586bbd287ea.png)
欢迎点赞+收藏+转发朋友圈素质三连
文章不错?点个【在看】吧! ?