で、私は以下のような豚の関係を持っている:{input_md5::type: chararray,input_md5::name: chararray,input_md5::id: long,input_md5::age: chararray,test_1:: type: chararray,test_2::name:chararray}
=PIG:どのように削除する「::」のカラム名
FINAL
私はハイブテーブルにinput_md5
関係のためにすべての列を保存しようとしています。 input_md5::type: chararray,input_md5::name: chararray,input_md5::id: long,input_md5::age: chararray
がtest_1:: type: chararray,test_2::name:chararray
を取っていないすべてのような は、以下のように.somethingをinput_md5
の列のみをフィルタリング豚のいずれかのコマンドがあります:
STORE= FOREACH FINAL GENERATE all input_md5::type .
私はその豚を知っています:
FOREACH FINAL GENERATE all input_md5::type as type
構文は、しかし、私は持っています私のコードではas
を使用することができないので、多くの列。
私がしようとするので: STORE= FOREACH FINAL GENERATE input_md5::type .. bus_input_md5::name;
豚はエラーをスロー:以下、事前に
org.apache.hive.hcatalog.common.HCatException : 2007 : Invalid column position in partition schema : Expected column <type> at position 1, found column <input_md5::type>
おかげで、この問題を解決
あなたのしたことを理解するのに苦労しています、これはそうですか? **問題**:テーブルがあり、対応する出力がありますが、colunmの名前が間違っている(不要なプレフィックスがあるため)ことはできません。 ** Solution/Trick **:宛先テーブルの行をゼロにし、その下の出力データを結合して、正しい列名を付けます。 (**警告/なぜ私はそれをトリックと呼ぶのですか**:この解決策はプレフィックスを取り除くだけでなく、列名を設定するので、列が正しい順序でないと驚くべき結果が得られます) –
@Dennis Jaheruddin、これはsourceとtarget.answerで列の順序が一致する場合にのみうまくいくでしょう。 – Neethu