是否可以将DataSet<Row>
保存为CSV输出? toDataSet
API期望Row.class
和writeAsCSV
期望Tuple。你能帮忙吗?
DataSet<Row> finalResult = tEnv.toDataSet(flattenedTripByGender, Row.class);
finalResult.writeAsCsv("../data/tripbygender.csv");
这是一个错误:
Caused by: java.lang.ClassCastException: org.apache.flink.api.table.Row cannot be cast to org.apache.flink.api.java.tuple.Tuple at org.apache.flink.api.java.io.CsvOutputFormat.writeRecord(CsvOutputFormat.java:44)
阿鲁娜
答案 0 :(得分:0)
您可以直接发出Table
,而无需使用DataSet
将其转换为TableSink
。
Flink 1.1.x附带CsvTableSink
,其使用方法如下:
// compute your result
Table result = // ...
// create a TableSink
TableSink sink = new CsvTableSink("/path/to/file", fieldDelim = "|");
// write the result Table to the TableSink
result.writeToSink(sink);