我正在处理有61列的.tsv文件。我想做一些 DataSet
但最大列 Tuple
在Flink是 Tuple25
,包含25列。
有没有办法实现我自己的 Tuple
包含61列?我试着延长时间 Tuple
类,但只要我尝试将.tsv文件的行Map到元组中,就会得到: java.lang.IllegalArgumentException: The tuple type exceeds the maximum supported arity
如果我不延长 Tuple
类我成功地将行Map为元组,但在尝试执行某些操作时遇到异常 DataSet
像join这样的转换:
ds1
.join(ds2)
.where(0)
.equalTo(0)
.writeAsText("./result.tsv", FileSystem.WriteMode.OVERWRITE)
.setParallelism(1);
例外情况: org.apache.flink.api.common.InvalidProgramException: Specifying keys via field positions is only valid for tuple data types.
有没有实现自定义的方法 Tuple
类,或者其他处理这些转换的方法?
1条答案
按热度按时间wydwbb8l1#
您可以使用自己的自定义pojo数据类型,其中包含任意多的列。然后,不用
.where(0)
以及.equalTo(0)
像这样传递自定义的keyselector.where((KeySelector<CustomDataType, String>) value -> value.getColumnN())