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

时间:2015-03-24 14:36:48

标签: hadoop amazon-s3 apache-pig

我将使用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;

但我一直收到这个错误:

[main]错误org.apache.pig.impl.PigContext - 遇到""在第1栏第5栏。

如果我尝试简单地加载数据:

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

我收到此错误:

[main]错误org.apache.pig.impl.PigContext - 遇到" " =" " =""在第1栏第1栏。

您如何避免收到这些错误?

1 个答案:

答案 0 :(得分:0)

首先,您的第一个脚本完全违反了应该如何实现Pig脚本。您无法在Python中指定变量,例如在Python中。但是你可以通过例如。通过将-param date="2015-03-25"附加到Pig命令来按日期参数。如果您希望参数是动态的,则可以执行此操作。

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

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