Hadoop数据处理与组织:从格式到分区
1. CSV输入输出格式
在MapReduce中,我们能够编写可处理和生成CSV的输入输出格式。以下是一些相关工具和方法:
- Pig :Pig的piggybank库包含一个CSVLoader,可将CSV文件加载到元组中。它支持CSV记录中的双引号字段,并将每个项作为字节数组提供。
- Hive SerDe :有一个名为csv - serde的GitHub项目(https://github.com/ogrodnek/csv - serde),其中的Hive SerDe可以对CSV进行序列化和反序列化,它使用OpenCSV项目来读写CSV。
操作建议
虽然使用TextInputFormat并在映射器中分割行可能更简单,但如果需要多次这样做,可能会陷入复制粘贴的反模式。因此,编写代码时应考虑代码复用。
2. 输出提交的重要性
在MapReduce任务执行过程中,输出提交是一个关键环节。大多数输出格式使用FileOutputFormat,它依靠FileOutputCommitter来处理输出提交。以下是其具体流程:
graph TD
A[任务开始] --> B[输出写入临时目录]
B --> C{任务完成?}
C -- 是 --> D[临时输出移至作业输出目录]
D --> E{作业成功完成?}
E -- 是 --> F[创建_SUCCESS文件]
超级会员免费看
订阅专栏 解锁全文
1033

被折叠的 条评论
为什么被折叠?



