2016-11-29 11 views
3

DataSet<Row>をCSV出力として保存することはできますか? toDataSet APIはRow.classを、writeAsCSVはタプルを予期しています。助けてもらえますか?データセットを保存する<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

あなたが直接TableSinkを使用してDataSetに変換せずTableを発することができます。

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

おかげファビアンは、それが動作します! – Aruna

+0

この回答が問題を解決する場合は、それに応じて回答をマークする必要があります。 – twalthr

関連する問題