gpt4 book ai didi

serialization - 在 Scalding 中读写案例类

转载 作者:可可西里 更新时间:2023-11-01 14:38:33 28 4
gpt4 key购买 nike

有人可以给我指向一个链接,该链接解释了如何在 scalding 中读取和编写简单的案例类吗?是否有一些默认的序列化方案?

例如,我有创建 com.twitter.algebird.Moments 管道的作业。我希望将管道写入 HDFS 并使用不同的作业读取它们。

例如:我试着写使用:

pipe.write(Tsv(outputPath))

并阅读使用:

class MomentsReadingExample (args: Args) extends Job(args){
val pipe = Tsv(args("input"), ('term, 'appearanceMoments, 'totalMoments)).read

val withSum = pipe.map(('appearanceMoments, 'totalMoments) -> 'sum) {
x: (Moments, Moments) => MomentsGroup.plus(x._1, x._2)
}

withSum.write(Tsv(args("output")))
}

我收到以下错误:

java.lang.ClassCastException: java.lang.String cannot be cast to com.twitter.algebird.Moments

最佳答案

一种方法是使用 pack and unpack .

pipe
.unpack[Moments]('appearanceMoments -> ('m0, 'm1, 'm2, 'm3, 'm4))
.write(Tsv(outputPath))

Tsv(args("input"), ('term, 'm0, 'm1, 'm2, 'm3, 'm4).read
.pack[Moments](('m0, 'm1, 'm2, 'm3, 'm4) -> 'appearanceMoments)

关于serialization - 在 Scalding 中读写案例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454336/

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