gpt4 book ai didi

java - 使用 Java OutputFormat 发出 Scala 元组

转载 作者:行者123 更新时间:2023-11-30 07:09:49 24 4
gpt4 key购买 nike

我正在尝试为 ArangoDB 编写自定义OutputFormat。我使用 CassandraOutputFormat.java 作为灵感,交换了相关的驱动程序和调用等。我用 Java 编写了这个,因为我找不到 OutputFormat 的 Scala 示例。因此,该类的定义如下:

public class ArangoOutputFormat<OUT extends Tuple> extends RichOutputFormat<OUT>

现在,我想要写入 ArangoDB 的 Flink 程序是用 Scala 编写的。数据集testDataSet[Tuple2[Long, Long]]。写入 ArangoDB 的调用如下所示:

test.output(
new ArangoOutputFormat[(Long, Long)]()
);

但是编译时出现以下错误:

Error:(47, 11) type arguments [(Long, Long)] do not conform to class ArangoOutputFormat's type parameter bounds [OUT <: org.apache.flink.api.java.tuple.Tuple] new ArangoOutputFormat(Long, Long)

在使用 Scala 和 Java 类时,我通常对类型系统有点困惑,谁能解释一下这里发生了什么?

提前致谢,罗布

最佳答案

ArangoOutputFormat 输入到 Flink 的 Java 元组 (org.apache.flink.api.java.tuple.Tuple),而您的 Scala 程序使用 Scala 的元组。 Flink 的 Java 元组与 Scala 的元组不兼容。您需要在接收器之前在 Mapper 中显式创建 Java 元组。

关于java - 使用 Java OutputFormat 发出 Scala 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39411928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com