2012-03-10 10 views
1

私はは、どのように私はラテン語豚で別のに等しい変数1が

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 [メイン] ERROR org.apache.pig.tools.grunt.Grunt - エラー1200:入力が一致しません ';'予想LEFT_PAREN ログファイルの詳細:/home/hadoop/pig_1331342327467.log

だから、豚はそれを好まないようです。これをどのように達成するのですか?

答えて

2

私はこの種の「典型的な」割り当てがブタでは機能しないと思います。厳密な意味でのプログラミング言語ではありません。それは、いくつかの特殊な機能を持つハープトップの上にある高水準言語です。

は、私はあなたが単になど、subjects2にsubjects1からデータをプロジェクトし直す必要があると思う:

subjects2 = foreach subjects1 generate $0, $1, $2; 

別のアプローチは、いくつかのばかばかしいほど高いパラメータでLIMIT機能を使用するかもしれません。

subjects2 = subjects2 LIMIT 100000000;

なぜそれは理にかなっていない多くの理由がありますが、それは考えです。

は、私はあなたがあなたがそれをしたいが、あなたは豚のように考える一度あなたはいつも仕事を得ることができますように滅多に出て働きません、私が発見したプログラミング言語

  • と同じようなことをやって検討している感じます。
0

私はあなたの例をDataScience courseraコースとして理解しています。 それは奇妙ですが、私は同じ問題を発見しました。このコードは、データ量に基づいて動作し、別のデータには作用しません。

私たちは、私は、このコード使用するパラメータを変更する必要があるので:

filtered2 = foreach filtered generate subject as subject2, predicate as predicate2, object as object2; 
関連する問題