【问题标题】:How to add a column to a touple of maps dataset in apache pig如何在apache pig中的地图数据集元组中添加一列
【发布时间】:2014-12-19 20:42:32
【问题描述】:

我正在尝试学习 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 列的sn-p。

【问题讨论】:

  • 您想根据现有输入中的某些过滤条件动态生成两个新列(CleanedStreetName 和 IssueYear)?如果是,那么它是可能的。您可以粘贴您的示例输入数据和最终输出吗?。

标签: apache-pig


【解决方案1】:

在 Pig 中,您使用 FOREACH 生成数据的投影。

您没有指定要如何获取 IssueYear,所以我将其分配为 0

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

【讨论】:

  • 谢谢我不知道as
猜你喜欢
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2013-08-13
  • 2013-11-15
  • 1970-01-01
相关资源
最近更新 更多