2017-07-30 8 views
1

2つの列を持つハイブテーブルがあります。従業員IDと給与。列の値の範囲を使用してハイブテーブルを分割する方法

データは以下のようなものです。

Employee ID Salary 
1 10000.08 
2 20078.67 
3 20056.45 
4 30000.76 
5 10045.14 
6 43567.76 

は、私がどのように私はこれを達成ん10000 20001

〜30000、20000に給与の範囲の給与Column.For例のパーティションに基づいてパーティションを作成したいです。

答えて

1

ハイブはレンジ分割をサポートしていませんが、データロード中に範囲を計算できます。

  1. salary_rangeで仕切られたテーブルを作成します:給与範囲算出のためのケースを使用して

    create table your_table ( employee_id bigint, salary double ) partitioned by (salary_range bigint)

  2. 挿入:

insert overwrite table your_table partition (salary_range)
select employee_id, salary,
case when salary between 10000 and 20000 then 20000 when salary between 20001 and 30000 then 30000 ... else ... end as salary_range from some_table;

+0

をいただき、ありがとうございますので、much.Iを試してみました上記のアプローチとそれは働いている。 – Surbhi

関連する問題