2016-11-29 10 views
3

Kann die DataSet<Row> als CSV-Ausgabe gespeichert werden? API erwartet Row.class und writeAsCSV erwartet Tuple. Kannst du bitte helfen?Speichern von DataSet <Row> als CSV

DataSet<Row> finalResult = tEnv.toDataSet(flattenedTripByGender, Row.class); 
finalResult.writeAsCsv("../data/tripbygender.csv"); 

Und das ist ein Fehler:

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) 

Aruna

Antwort

0

Sie können direkt eine Table emittieren, ohne sie zu einem DataSet Umwandlung eines TableSink verwenden.

Flink 1.1.x kommt mit einem CsvTableSink, die wie folgt verwendet:

// 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

Dank Fabian, es funktioniert! – Aruna

+0

Wenn diese Antwort Ihr Problem löst, sollten Sie die Antwort entsprechend markieren. – twalthr

Verwandte Themen