apache flink-将 DataSet <Row>保存为CSV


0

是否可以将 DataSet 另存为CSV输出?toDataSet API需要Row.class公司writeAsCSV需要元组。你能帮忙吗?

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)

阿鲁纳

1 答案


0

可以直接发出一个表,而不用使用表 chaining接将其 transformation为 DataSet 。

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);


我来回答

写文章

提问题

面试题