如何使用Pig Latin从AWS S3加载数据



我将使用Pig Latin来检索根据日期保存和组织的CSV文件。我想自动化这个过程并获取昨天的数据。

以下是代码:

tempdate = CurrentTime();
-- P1D = period of 1 day in ISO format
yesterday = foreach tempdate generate SubtractDuration(tempdate,P1D);
$date = ToString(yesterday, "YYYY-MM-dd"); 
data = load 's3://folder/folder/$date' as(a: tuple()) ;
dump data;

但我一直收到这个错误:

[min]错误org.apache.pig.impl.PigContext-在第1行第5列遇到"。

如果我试着简单地加载这样的数据:

A = LOAD 's3://folder/folder/date/file.csv' as (line: chararray);
dump A;

我得到这个错误:

[min]错误org.apache.pig.impl.PigContext-在第1行第1列遇到"="="。

如何避免出现这些错误?

首先,您的第一个脚本完全不符合Pig脚本的实现方式。不能像在Python中那样在脚本中指定变量。但是,您可以通过将-param date="2015-03-25"附加到您的Pig命令中来通过参数传递例如date。如果您希望参数是动态的,您可以这样做。

-param date=`date -d "yesterday" '+%Y-%m-%d'

当我运行第二个脚本时,它对我有效。

最新更新