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;