2016-11-29 109 views
3

是否可以將DataSet<Row>另存爲CSV輸出? toDataSet API預計Row.classwriteAsCSV預計Tuple。能否請你幫忙?將DataSet <Row>另存爲CSV

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

您可以直接發出Table不使用TableSink將其轉換爲DataSet

弗林克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); 
+0

的Fabian感謝,它的工作原理! – Aruna

+0

如果此答案解決了您的問題,則應相應地標記答案。 – twalthr