我是hadoop和pig的新手。我正在尝试在vmware上的centos6环境中运行一个示例pig脚本:
records = LOAD '2013_subset.csv' USING PigStorage(',') AS
(Year,Month,DayofMonth,DayOfWeek,DepTime,CRSDepTime,ArrTime,\
CRSArrTime,UniqueCarrier,FlightNum,TailNum,ActualElapsedTime,\
CRSElapsedTime,AirTime,ArrDelay,DepDelay,Origin,Dest,\
Distance:int,TaxiIn,TaxiOut,Cancelled,CancellationCode,\
Diverted,CarrierDelay,WeatherDelay,NASDelay,SecurityDelay,\ LateAircraftDelay);milage_recs =
GROUP records ALL;tot_miles = FOREACH milage_recs GENERATE SUM(records.Distance);STORE tot_miles INTO /user/root/totalmiles;
此代码保存到名为totalmiles.pig的文件中。运行后,它将完成,并出现以下错误:
error org.apache.pig.tools.grunt.grunt--错误:意外字符“\”
从代码中删除字符“\”时,会出现另一个错误:
error org.apache.pig.tools.grunt.grunt--错误:不匹配的输入“/”应为quotedstring
我无法找到此特定错误的解决方案。我已在centos7下的其他vm(virtulabox)上运行此程序,并收到一个不同的错误a参数替代:i。我希望有人能解释一下。
谢谢!wasmithpfs公司
3条答案
按热度按时间iswrvxsc1#
删除反斜杠,即“\”,在store语句中,路径必须用引号括起来。
jtoj6r0c2#
有两个问题:1。在load语句中,不需要“\”。查询解析器可以处理换行符。试试下面的load语句。
在存储语句中,输出路径的into语句后面应该有单引号。请尝试以下操作:
将tot_miles存储到“/user/root/totalmiles”中;
mlnl4t2r3#
错误似乎很明显:
人物
\
不应该在那里。解决这个问题后,代码可以进一步编译,然后会出现下一个错误:
在那里你有一个
/
应为带引号的字符串。尝试用引号表示路径,如: