Apache pig 如何在pig脚本中转义单个引号

Apache pig 如何在pig脚本中转义单个引号,apache-pig,Apache Pig,pig脚本可以使用双引号吗?如果不是,如何转义单个报价?我试图解析一个日期时间,但出现了错误 Unexpected character '"' 这是剧本 logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,"YYYY-MM-DD'T'hh:mm ss:'00'") as theTime:datetime 尝试使用\和单引号转义它们 logOutput = FOREACH parsedLog GENERATE uid, To

pig脚本可以使用双引号吗?如果不是,如何转义单个报价?我试图解析一个日期时间,但出现了错误

Unexpected character '"'
这是剧本

logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,"YYYY-MM-DD'T'hh:mm ss:'00'") as theTime:datetime

尝试使用
\
和单引号转义它们

logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,'YYYY-MM-DD\'T\'hh:mm ss:00') as theTime:datetime

不确定您对
'00'
的意思,请尝试使用
\
和单引号对其进行转义

logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,'YYYY-MM-DD\'T\'hh:mm ss:00') as theTime:datetime

不确定您对
'00'
的意思,您可以使用
\\
(双反斜杠)对单个引号进行转义

请注意,在使用转义时,不应在脚本的另一个位置重用创建的字符串,而应在一次调用中重用所有字符串。 例如,假设要将字符串发送到函数,此脚本将失败:

%declare CURRENT_TIME_ISO_FORMAT ToString($CURRENT_TIME,'yyyy-MM-dd\\'T\\'HH:mm:ss.SSSZ')
%declare TODAY_BEGINNING_OF_DAY_ISO_FORMAT ISOToDay($CURRENT_TIME_ISO_FORMAT)
相反,您应该:

%declare TODAY_BEGINNING_OF_DAY_ISO_FORMAT ISOToDay(ToString($CURRENT_TIME,'yyyy-MM-dd\\'T\\'HH:mm:ss.SSSZ'))

可以使用
\\
(双反斜杠)转义单引号

请注意,在使用转义时,不应在脚本的另一个位置重用创建的字符串,而应在一次调用中重用所有字符串。 例如,假设要将字符串发送到函数,此脚本将失败:

%declare CURRENT_TIME_ISO_FORMAT ToString($CURRENT_TIME,'yyyy-MM-dd\\'T\\'HH:mm:ss.SSSZ')
%declare TODAY_BEGINNING_OF_DAY_ISO_FORMAT ISOToDay($CURRENT_TIME_ISO_FORMAT)
相反,您应该:

%declare TODAY_BEGINNING_OF_DAY_ISO_FORMAT ISOToDay(ToString($CURRENT_TIME,'yyyy-MM-dd\\'T\\'HH:mm:ss.SSSZ'))

Pig不接受双引号。Pig不接受双引号。适合我。你用单引号还是双引号?你用的是哪个版本的猪?好的,现在可以了,我不得不把它的结尾改成ss:ss。。。我不确定这样做是否正确,但对我来说是有效的,因为我们所有的时间都在00:00结束。你用单引号还是双引号?你用的是哪个版本的猪?好的,现在可以了,我不得不把它的结尾改成ss:ss。。。不确定这样做是否正确,但因为我们所有的时间都是在00:00结束的