Hadoop map reduce 从 csv 格式的 csv 文件中提取特定列

Hadoop map reduce Extract specific columns from csv file in csv format

我是 hadoop 的新手,正在从事一个大数据项目,我必须清理和过滤给定的 csv 文件。 就像如果给定的 csv 文件有 200 列,那么我只需要 select 20 个特定的列(所谓的数据过滤)作为进一步操作的输出。 同样作为数据清理的一部分,我必须检查日期列的日期格式是否正确,并将所有格式更改为单一格式,如 DD-MM-YYYY。

到目前为止,我可以读取给定的文件,但是您能否建议如何 select 特定的列以及如何检查日期格式?

您也可以使用 Apache Pig 来过滤和验证日期格式。按照以下步骤操作:

  1. 将文件复制到 HDFS
  2. 使用加载命令和 pigStorage() 加载文件。
  3. Select 20 列使用 ForEach 语句(你可以只给列 name/number 比如 $0,$3,$5..etc)

  4. 编写 UDF 以验证日期格式 (Ref -http://www.crackinghadoop.com/pig-java-udf-validate-date-format/)

  5. 使用 'store' 存储过滤后的输出。