私はさまざまな記事の単語のtf-idf値を記述するスキーマを持っています。 その説明は次のようになります。ここではPigのリレーションからカスタムスキーマを生成する方法は?
tfidf_relation: {word: chararray,id: bytearray,tfidf: double}
は、このようなデータの例である:
(cat,article_one,0.13515503603605478)
(cat,article_two,0.4054651081081644)
(dog,article_one,0.3662040962227032)
(apple,article_three,0.3662040962227032)
(orange,article_three,0.3662040962227032)
(parrot,article_one,0.13515503603605478)
(parrot,article_three,0.13515503603605478)
私は形式で出力を取得したい: 猫article_one 0.13515503603605478、その上0.4054651081081644 とarticle_two。 質問は、単語フィールドとidとtfidfフィールドのタプルを含むこれとの関係をどうやって作るのですか? このような形式:
X = FOREACH tfidf_relation GENERATE word, (id, tfidf);
は機能しません。これの正しい構文は何ですか?
Wojtek、あなたのソリューションのさまざまな形を試しました。解析エラーが記号 "{"に現れるたびに試しました。 – user710450
さて、Javaルーチンの埋め込みを使用してこれを実現したと思います。しかし、正しいPig構文(および可能性自体)は依然として重要です。 – user710450
X(id、tfidf)はどうですか?単語をグループ化してグループ化することができます(覚えていればそのようなものです)が、素早くUDFを書くだけで簡単にできます。 – wlk