hadoop - Hadoop级联框架以​​更新特定的列数据

标签 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    INITIAL_MAIL

我有一个级联工作,它会从另一个集合进行一些评估,我只想通过“verificationStatus”更新“updateTime”和“Id”列,而不会影响其他列

但是在层叠时,如果我设置这两列,则会丢失其他列数据。我只剩下这样的东西。
Id  updateTime  verificationStatus
Id1 11-7-2013   BLOCKED
Id2 11-7-2013   SECOND_REMINDER
Id3 11-7-2013   FIRST_REMINDER
SinkMode UPDATE非常适合按事务更新事务,但不适用于单个列数据。

我该如何解决这个问题?

PS:加入或合并无效。由于级联设计,Source和Sink不能指向同一集合。

最佳答案

选项1:

编写一个层叠的Function,以更新上面的这两列,然后将Function和原始字段传递到Pipe中,并使用Fields.REPLACE将列替换为新的列值。

选项2:

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

关于hadoop - Hadoop级联框架以​​更新特定的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589883/

相关文章:

hadoop - Hive 和 Cascading Lingual 之间有什么区别

hadoop - 解释级联点图

hadoop - 使用 distcp 将数据从 HDFS 安全地传输到 amazon S3

regex - 级联-正则表达式解析器-错​​误的字段数

scala - Scalding TypedPipe API 外部操作模式

hadoop - 在级联中实现笛卡尔连接

cascading - 如何可视化烫烫作业的步骤

hadoop - 如何从HDFS加载数据到Hive

python - Spark - 为我的 Spark 作业分配了多少执行器和内核

sql - Hive从表中获取不同行的计数时引发错误