猪脚本可以使用双引号吗?如果不是如何逃避单一报价?我试图解析一个约会时间,并且我发现错误
Unexpected character '"'
这是脚本
logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,"YYYY-MM-DD'T'hh:mm ss:'00'") as theTime:datetime
答案 0 :(得分:3)
您可以使用\\
(双反斜杠)转义单引号。
%declare CURRENT_TIME_ISO_FORMAT ToString($CURRENT_TIME,'yyyy-MM-dd\\'T\\'HH:mm:ss.SSSZ')
请注意,当您使用转义时,不应该在脚本的另一个位置重复使用创建的String,而应该在单个调用中重用所有内容。 例如,假设您要将字符串发送到ISOToDay函数,此脚本将失败:
%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'))
答案 1 :(得分:2)
尝试使用\
并使用单引号转义它们。
logOutput = FOREACH parsedLog GENERATE uid, ToDate(timestamp,'YYYY-MM-DD\'T\'hh:mm ss:00') as theTime:datetime
不确定您对'00'
的意思。