如何在map / reduce中执行ETL

san*_*uru 3 hadoop mapreduce

如果必须将一个文本文件逐行转换为另一个文本文件,我们应该如何设计mapper / reducer。

我写了一个简单的map / reduce程序,做了一些小的改动,但要求更加详细,以下是详细信息:

  • 该文件的结构通常是这样的-第一行包含以逗号分隔的列名列表。第二行和其余行针对列指定值
  • 在某些行中,尾随的列值可能会丢失,例如:如果有15列,则可能仅为前10列指定值。
  • 我大约有5个输入文件,我需要将它们转换并聚合为一个文件。转换特定于5个输入文件中的每一个。
  • 如何将上下文信息(如文件名)传递给映射程序/缩减程序?
  • 转换是特定于列的,因此我如何记住第一行中提到的列,然后关联和转换行中的值?

900*_*000 5

将文件拆分为行,并行转换(映射)每一行,将结果行合并(减少)为一个文件?