pig脚本中应为带引号的字符串

yks3o0rb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(336)

我编写了一个脚本,从vsql中选择:

LOAD 'sql://{select * from sandesh.insights_voice_day
    WHERE Observation_date BETWEEN '2011-11-22' AND '2011-11-23' AND
    Type='total'
    ORDER BY  Observation_date}'

作为一个例外 '' Expecting QUOTEDSTRING? . 什么是问题?

hxzsmxv2

hxzsmxv21#

问题似乎是多次使用单引号。下面一行似乎是编译(pig-c test.pig)

A = LOAD 'sql://{select * from sandesh.insights_voice_day WHERE Observation_date BETWEEN "2011-11-22" AND "2011-11-23" AND Type="total" ORDER BY  Observation_date}';
ttp71kqs

ttp71kqs2#

pig希望在加载后有一个带引号的字符串,其中包含正在加载的文件的名称。pig不是sql,因此必须先将查询转储到文件中,然后执行以下操作:

A = LOAD "your_file" as (column1:datatype, column2:datatype);
B = FITER A by observation date > '2011-11-22' AND observation_date < '2011-11-23' AND
    Type='total';
C = ORDER B by observation_date;
DUMP C;

现在,这将把它们排序为字符串。因此,根据您使用的pig版本,您需要使用适当的函数处理时间戳。比如:
http://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/evaluation/datetime/convert/customformattoiso.html

相关问题