xiaojin.wy created FLINK-15098:
----------------------------------

             Summary: CsvTableSink has no properties of a OVERWRITE mode to 
write, but the exception hint the user use it when a file or directory already 
exists
                 Key: FLINK-15098
                 URL: https://issues.apache.org/jira/browse/FLINK-15098
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / Client
    Affects Versions: 1.10.0
            Reporter: xiaojin.wy


When using sql-client to execute a sql , there will be a IOException just like 
the content below if the file or directory already exists. But there is no 
place for the user to set the overwrite mode. In another word, the hint tell 
users to use overwrite mode, but flink has not support it now.

 

 

The exception:

Caused by: org.apache.flink.runtime.client.JobExecutionException: Cannot 
initialize task 'HashAggregate(isMerge=[true], select=[Final_AVG(sum$0, 
count$1) AS avg_1]) -> SinkConversionToRow -> Map -> Sink: 
CsvTableSink(avg_1)': File or directory already exists. Existing files and 
directories are not overwritten in NO_OVERWRITE mode. Use OVERWRITE mode to 
overwrite existing files and directories.Caused by: 
org.apache.flink.runtime.client.JobExecutionException: Cannot initialize task 
'HashAggregate(isMerge=[true], select=[Final_AVG(sum$0, count$1) AS avg_1]) -> 
SinkConversionToRow -> Map -> Sink: CsvTableSink(avg_1)': File or directory 
already exists. Existing files and directories are not overwritten in 
NO_OVERWRITE mode. Use OVERWRITE mode to overwrite existing files and 
directories. at 
org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:216)
 at 
org.apache.flink.runtime.scheduler.SchedulerBase.createExecutionGraph(SchedulerBase.java:243)
 at 
org.apache.flink.runtime.scheduler.SchedulerBase.createAndRestoreExecutionGraph(SchedulerBase.java:215)
 at 
org.apache.flink.runtime.scheduler.SchedulerBase.<init>(SchedulerBase.java:203) 
at 
org.apache.flink.runtime.scheduler.DefaultScheduler.<init>(DefaultScheduler.java:119)
 at 
org.apache.flink.runtime.scheduler.DefaultSchedulerFactory.createInstance(DefaultSchedulerFactory.java:104)
 at 
org.apache.flink.runtime.jobmaster.JobMaster.createScheduler(JobMaster.java:278)
 at org.apache.flink.runtime.jobmaster.JobMaster.<init>(JobMaster.java:266) at 
org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:98)
 at 
org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:40)
 at 
org.apache.flink.runtime.jobmaster.JobManagerRunnerImpl.<init>(JobManagerRunnerImpl.java:146)
 ... 10 moreCaused by: java.io.IOException: File or directory already exists. 
Existing files and directories are not overwritten in NO_OVERWRITE mode. Use 
OVERWRITE mode to overwrite existing files and directories. at 
org.apache.flink.core.fs.FileSystem.initOutPathDistFS(FileSystem.java:937) at 
org.apache.flink.api.common.io.FileOutputFormat.initializeGlobal(FileOutputFormat.java:286)
 at 
org.apache.flink.runtime.jobgraph.InputOutputFormatVertex.initializeOnMaster(InputOutputFormatVertex.java:100)
 at 
org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:212)
 ... 20 more

 

 

 

The properties that a csvTableSink support now:

connector.type, connector.property-version, connector.path, format.type, 
format.property-version, format.field-delimiter



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to