ハイブの既存の列から新しい列を作成できるかどうかは疑問でした。ハイブ - 別の列から列を作成することは可能ですか
私はテーブルPeople (name string, age int)
を持っており、if(age > 70, 'old', 'not_old')
と定義される列is_old string
を追加したいとします。これを行う方法はありますか?
私は現在、考えることができる唯一の方法は、古いものから新しいテーブルPeople_temp
を作成し、古いテーブルを削除し、そのような新しいテーブル名前を変更することです:
create table People_new as select name, age, if(age > 70, 'old', 'not_old') as is_old from People;
drop table People;
alter table People_new rename People;
を**方法はあります一時テーブルを作成せずにこれを行うのですか?
(たとえば、oracleには計算列のアイデアがあります)
はい。 Googleハイブケースステートメントまたはハイブifステートメント。 – gobrewers14