如何在apache pig中将列添加到地图数据集的元组中

时间:2014-12-19 20:42:33

标签: apache-pig

我正在尝试学习apache pig,hadoop和朋友,现在我正在使用纽约市的门票数据。

我按以下方式加载数据:

data = load 'nyc/smallNYC.csv' USING PigStorage(',') AS 
(
  SummonsNumber:int,
  PlateID:chararray,
  RegistrationState:chararray,
  PlateType:chararray,
  ...
  StreetName:chararray
  ... // And a lot more
)

现在我想在这个数据集中添加两个新列(或者为每个数据集添加两个新键),一个是CleanedStreetName(为了这个问题,我想要生成这个列使用:LOWER(StreetName)),第二列为IssueYear

然后,我想使用这些列过滤,分组等,我找不到任何解释如何使用这些列的指南。

以下是问题:

  • 这是明智的做法吗?也许我应该动态计算这些值?
  • 如果这是明智之举,请发布一个添加CleanedStreetName列的代码段。

1 个答案:

答案 0 :(得分:1)

在Pig中,您使用FOREACH生成数据预测。

您没有指定如何获取IssueYear所以我只是将其指定为0

NEWDATA = FOREACH data GENERATE *,LOWER(StreetName) as CleanedStreetName, 0 as IssueYear