Sql 如何用拉丁语将一个变量设置为另一个变量
我想做什么Sql 如何用拉丁语将一个变量设置为另一个变量,sql,apache-pig,Sql,Apache Pig,我想做什么 register s3n://uw-cse344-code/myudfs.jar -- load the test file into Pig --raw = LOAD 's3n://uw-cse344-test/cse344-test-file' USING TextLoader as (line:chararray); -- later you will load to other files, example: raw = LOAD 's3n://uw-cse344/btc-2
register s3n://uw-cse344-code/myudfs.jar
-- load the test file into Pig
--raw = LOAD 's3n://uw-cse344-test/cse344-test-file' USING TextLoader as (line:chararray);
-- later you will load to other files, example:
raw = LOAD 's3n://uw-cse344/btc-2010-chunk-000' USING TextLoader as (line:chararray);
-- parse each line into ntriples
ntriples = foreach raw generate FLATTEN(myudfs.RDFSplit3(line)) as (subject:chararray,predicate:chararray,object:chararray);
--filter 1
subjects1 = filter ntriples by subject matches '.*rdfabout\\.com.*' PARALLEL 50;
--filter 2
subjects2 = subjects1;
但我得到了一个错误:
2012-03-10 01:19:18039[main]错误org.apache.pig.tools.grunt.grunt-错误1200:输入不匹配“;”期待左撇子
日志文件中的详细信息:/home/hadoop/pig_1331342327467.log
看来猪不喜欢这样。我该如何完成这项任务?我认为这种“典型”的任务在pig中不起作用。它不是严格意义上的编程语言——它是hadoop之上的一种高级语言,具有一些专门的函数 我认为您需要简单地将数据从subjects1重新投影到subjects2,例如:
subjects2 = foreach subjects1 generate $0, $1, $2;
另一种方法可能是使用极限函数和一些高得离谱的参数
subjects2=subjects2限额100000000
这可能有很多原因不合理,但这是一个想法
我感觉你正在考虑用编程语言做一些事情
- 我发现很少有人能像你想的那样工作,但一旦你像猪一样思考,你总能完成工作
filtered2 = foreach filtered generate subject as subject2, predicate as predicate2, object as object2;