如何在 Apache Flink 中将 Scala DataSet 传递给 Java Class
How to pass Scala DataSet to Java Class in Apache Flink
我是 Scala 新手。所以我想在Java中处理Apache Flink的DataSet。但是我在 Scala 代码中有一个数据集,我想传入 Java Class 的方法。
例如:
在 Scala 中:
val dS: DataSet[Vector] = ...
SampleJavaClass.sendDS(ds)
在SampleJavaClass.java中有一个类似sendDs(DataSet<Vector> javaDs)
的方法
我正在尝试执行此操作但显示错误消息:
类型不匹配;发现:
org.apache.flink.api.scala.DataSet[org.apache.flink.ml.math.Vector]
required: org.apache.flink.api.java.ExecutionEnvironment Error
occurred in an application involving default arguments.
我该如何解决这个问题。请帮我解决这个问题。
Flink a java one中有两个DataSet 类
https://ci.apache.org/projects/flink/flink-docs-master/api/java/index.html?org/apache/flink/api/scala/DataSet.html and a scala one。您可以通过 javaSet().
从基础 scala 数据集中访问 java 一个
我会尝试
SampleJavaClass.sendDS(ds.javaSet())
这可能会安抚您的代码。
Scala DataSet
确实是 Java DataSet
的包装器。但是,由于方法 javaSet
是包私有的,您无法访问它。因此,目前只有一种非常笨拙的方法可以将 Scala DataSet
转换为 Java DataSet
.
为了访问 javaSet
方法,您必须将您的包定义为 org.apache.flink
的子包。诚然,这不是最佳实践。
如果这是一项严格要求的功能,您应该为它提交 JIRA ticket。
我是 Scala 新手。所以我想在Java中处理Apache Flink的DataSet。但是我在 Scala 代码中有一个数据集,我想传入 Java Class 的方法。 例如: 在 Scala 中:
val dS: DataSet[Vector] = ...
SampleJavaClass.sendDS(ds)
在SampleJavaClass.java中有一个类似sendDs(DataSet<Vector> javaDs)
我正在尝试执行此操作但显示错误消息: 类型不匹配;发现:
org.apache.flink.api.scala.DataSet[org.apache.flink.ml.math.Vector] required: org.apache.flink.api.java.ExecutionEnvironment Error occurred in an application involving default arguments.
我该如何解决这个问题。请帮我解决这个问题。
Flink a java one中有两个DataSet 类 https://ci.apache.org/projects/flink/flink-docs-master/api/java/index.html?org/apache/flink/api/scala/DataSet.html and a scala one。您可以通过 javaSet().
从基础 scala 数据集中访问 java 一个我会尝试
SampleJavaClass.sendDS(ds.javaSet())
这可能会安抚您的代码。
Scala DataSet
确实是 Java DataSet
的包装器。但是,由于方法 javaSet
是包私有的,您无法访问它。因此,目前只有一种非常笨拙的方法可以将 Scala DataSet
转换为 Java DataSet
.
为了访问 javaSet
方法,您必须将您的包定义为 org.apache.flink
的子包。诚然,这不是最佳实践。
如果这是一项严格要求的功能,您应该为它提交 JIRA ticket。