Apache flink ApacheFlink:使用JDBCOutputFormat时出现异常

Apache flink ApacheFlink:使用JDBCOutputFormat时出现异常,apache-flink,Apache Flink,我实现了一个Flink程序,并尝试将结果DataSet存储到关系数据库中。我执行了以下命令: data.output(JDBCOutputFormat.buildJDBCOutputFormat() .setDBUrl(dbURL) .setDrivername(drivername) .setUsername(username) .se

我实现了一个Flink程序,并尝试将结果
DataSet
存储到关系数据库中。我执行了以下命令:

data.output(JDBCOutputFormat.buildJDBCOutputFormat()
                    .setDBUrl(dbURL)
                    .setDrivername(drivername)
                    .setUsername(username)
                    .setPassword(password)
                    .finish()
                    );
dbUrl
drivername
username
password
分别存储在字符串中

我得到以下错误:

The method output(OutputFormat<Tuple8<String,String,String,String,String,String,String,String>>) 
in the type DataSet<Tuple8<String,String,String,String,String,String,String,String>> 
is not applicable for the arguments (JDBCOutputFormat) 
方法输出(OutputFormat)
在类型数据集中
不适用于参数(JDBCOutputFormat)

如何解决此问题?

从错误消息中,您的数据集似乎不是Row类型(org.apache.flink.types.Row)。将其转换为行类型,然后调用输出函数

将Tuple2类型的变量“value”转换为行的示例代码

Row obj = new Row(2);
obj.setField(0,value.f0);
obj.setField(1,value.f1);

由于数据集包含Tuple8类型的元素,因此行的大小应为8(行(8))。您可以使用map函数将每个元素从Tuple8转换为Row。

请向我们提供完整的例外情况。数据集数据包含什么?仅当数据集包含行(特定的Flink类型)时才能使用JDBCOutputFormat。数据集如下所示:
DataSet data=env.readCsvFile(“D:\\WorkDocument\\Dummy\U data\\data”)。fieldDelimiter(“|”)。类型(String.class、String.class、String.class、String.class、String.class、String.class、String.class、String.class);
如何从数据集转换数据集