Apache beam / Scala Combine perkey
Apache beam / Scala Combine perkey
我正在寻找某人提供一个使用 Apache beam Combine.perkey 在 Scala 中使用 beam Java API.
转换的工作示例
我遇到了 scala/java 类型互操作性的问题。
我无法将每个键组合起来工作。我永远无法让它的语法正确。
示例:
val sales: PCollection KV[(Int,Int), Long]
sales.apply(Combine.perKey[(Int,Int),Long,Long](new SumLongs()))
import org.apache.beam.sdk.transforms.SerializableFunction
class SumLongs extends SerializableFunction[Iterable[Long], Long] {
override def apply(input: Iterable[Long]): Long = {
var sum = 0L
for (item <- input) {
sum += item
}
sum
}
}
它给出了错误,"too many type arguments for perkey"。当我把它拿出来时,它显示 "Unspecified type parameters: OutputT".
我只需要用 java.lang.Iterable
改变 scala Iterable
我正在寻找某人提供一个使用 Apache beam Combine.perkey 在 Scala 中使用 beam Java API.
转换的工作示例我遇到了 scala/java 类型互操作性的问题。
我无法将每个键组合起来工作。我永远无法让它的语法正确。
示例:
val sales: PCollection KV[(Int,Int), Long]
sales.apply(Combine.perKey[(Int,Int),Long,Long](new SumLongs()))
import org.apache.beam.sdk.transforms.SerializableFunction
class SumLongs extends SerializableFunction[Iterable[Long], Long] {
override def apply(input: Iterable[Long]): Long = {
var sum = 0L
for (item <- input) {
sum += item
}
sum
}
}
它给出了错误,"too many type arguments for perkey"。当我把它拿出来时,它显示 "Unspecified type parameters: OutputT".
我只需要用 java.lang.Iterable
改变 scala Iterable