首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Scalding中读取和编写Case类

在Scalding中读取和编写Case类
EN

Stack Overflow用户
提问于 2014-03-17 20:31:53
回答 1查看 692关注 0票数 3

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

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

Fer示例:我尝试使用以下命令编写代码:

代码语言:javascript
复制
pipe.write(Tsv(outputPath))

并使用以下命令进行阅读:

代码语言:javascript
复制
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")))
}

我收到以下错误:

代码语言:javascript
复制
java.lang.ClassCastException: java.lang.String cannot be cast to com.twitter.algebird.Moments
EN

回答 1

Stack Overflow用户

发布于 2014-04-15 02:05:22

一种方法是使用pack and unpack

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22454336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档