更新特定列数据的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
将这些数据集重新组合在一起