2

私はハイブが初めてです。入力ファイルの形式は (ID、日付 (YYYY-MM-DD)、時間 (HH)、キー、値) です。テーブルは (日付、時間) で分割されており、入力ファイルには 7 日間 (24 時間) のデータが含まれています。毎日)。このデータをハイブテーブルにロードするとき、テーブルのそれぞれのパーティションにデータをロードする必要があります。助けてください。

ありがとう、スダカール。

4

1 に答える 1

4

1つの方法は、最初にデータをパーティション化されていないテーブル(たとえば、以下の例のtmp_some_table)にロードすることです。次に、次のようなことを行うことができます。

  set hive.exec.dynamic.partition=true;
  set hive.exec.dynamic.partition.mode=nonstrict;
  from tmp_some_table tt
  insert overwrite table some_table partition(day, hour)
  select
    id,
    key,
    value, 
    day,
    hour

パーティションは、select句の最後の列である必要があります。上記はハイブ0.7.1で動作します。詳細については、wikiを参照してください。パーティションが多すぎるとエラーが発生することに注意してください。

于 2012-07-28T02:31:38.390 に答える