我将使用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'
当我运行第二个脚本时,它对我有效。