2017-02-12 4 views
1

同じクエリで静的パーティションと動的パーティションを追加できますか?はいの場合は、以下のデータごとにフォルダを作成する方法は?静的パーティションと動的パーティションの両方を同じクエリで使用できますか?はいの場合は、フォルダの作成方法を指定します。

  1. 異なる国とその州のデータがあります。
  2. staticパーティションをcountry = "US"に設定し、動的パーティションをon状態にします。

どのようにフォルダ構造がHDFSで作成されるのですか?

答えて

0

はい。フォルダ構造は、テーブル定義で使用する順序に応じて階層的に作成されます。たとえば、次のような表を使用してテーブルを定義したとします。

国の静的値と状態の動的値を定義できます。この場合、静的パーティションの値を事前に指定する( 'US')、Hiveに( "SELECT"クエリの各行の)列 "state"の値を読み込ませ、各状態のフォルダ(一意のHDFSパス)。あなたはハイブで動的および静的パーティションの使用方法の優れたガイドを持っている

.../your_table/country=US/state=CA 
... 
.../your_table/country=US/state=NY 

Here

INSERT OVERWRITE TABLE your_partitioned_table 
PARTITION (country = 'US', state) 
SELECT T.column1, T.column2, ..., T.country, T.state 
FROM your_table T 
WHERE T.country = 'US'; 

あなたのHDFSフォルダ構造は、このようなものになるだろう。

+0

上記の質問と回答.for米国以外の国のデータフォルダー構造の作成方法は?静的パーティションでは、country = USと指定します。 – Wahid

+0

その場合、値「US」を設定しているため、WHERE句のUSからデータを選択しているため、米国以外の国ではフォルダが作成されません。すべての国のデータが必要な場合は、国でも動的パーティションを使用する必要があります(国の値を設定しない) –

関連する問題