使用Scala从Flink中的JDBC Source创建DataSet

时间:2016-03-17 17:37:32

标签: scala jdbc apache-flink

我正在尝试使用Flink中的Scala从JDBC源创建数据集,所有文档/其他SO问题似乎都使用Java。我遇到了泛型类型的一些问题。

到目前为止,我有:

val inputFormat = JDBCInputFormat.buildJDBCInputFormat()
                 .setDrivername(driver)
                 .setDBUrl(url)
                 .setUsername(username)
                 .setPassword(password)
                 .setQuery("select col_a,col_b from my_table")
                 .finish()

 env.createInput(inputFormat)

这会出错:

error: could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[?0]
                    env.createInput(inputFormat)

我也试过

var tuple = ("",0)
inputFormat.nextRecord(tuple)

哪个错误:

error: type mismatch;
 found   : (String, Int)
 required: ?0

最后我尝试了:

inputFormat.nextRecord(_)

导致:

found   : x$1.type (with underlying type ?0)
 required: ?0

所以问题是如何使用Scala在Flink中建立JDBC连接/我错在哪里?

1 个答案:

答案 0 :(得分:2)

解决第一个问题:

error: could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[?0]
                    env.createInput(inputFormat)

您需要添加以下导入语句

import org.apache.flink.api.scala._