更新特定列数据的Hadoop级联框架

更新特定列数据的Hadoop级联框架,hadoop,cascading,Hadoop,Cascading,我有一个mongodb集合,看起来像这样 Id Name createTime updateTime Age Country verificationStatus Id1 Abc 10-7-2013 10-7-2013 21 Xxxx INITIAL_MAIL Id2 Efg 9-7-2013 10-7-2013 22 Xxxx FIRST_REMINDER Id3 Hij 8-7-2013 10-7-2013 45 Xxxx IN

我有一个
mongodb
集合,看起来像这样

Id  Name    createTime  updateTime  Age Country verificationStatus
Id1 Abc 10-7-2013   10-7-2013   21  Xxxx    INITIAL_MAIL
Id2 Efg 9-7-2013    10-7-2013   22  Xxxx    FIRST_REMINDER
Id3 Hij 8-7-2013    10-7-2013   45  Xxxx    INITIAL_MAIL
我有一个级联作业,它从另一个集合中执行一些评估,我只想通过“
Id
”更新“
verificationStatus
”和“
updateTime
”列,而不干扰其他列

但是在级联中,如果设置这两列,则会丢失另一列数据。我只剩下这样的东西了

Id  updateTime  verificationStatus
Id1 11-7-2013   BLOCKED
Id2 11-7-2013   SECOND_REMINDER
Id3 11-7-2013   FIRST_REMINDER
SinkMode UPDATE
适用于逐个事务更新数据,但不适用于单个列数据

我如何处理这个问题


PS:加入或合并不起作用。因为源和接收器不能通过casacading设计指向同一个集合

选项1:

编写一个级联
函数
,更新上面的这两列,并将
函数
和原始字段传递到
管道
中,然后使用
字段。REPLACE
用新列值替换列

选项2:

您可以创建两个
管道
,一个包含要保留的原始列数据,其中包括您在帖子中提到的
id
字段,另一个
管道
更新这些列,然后使用
CoGroup
将这些数据集重新组合在一起