簡體   English   中英

如何在蜂巢中按特定列進行分區?

[英]How do I partition in hive by a specific column?

我有3列:用戶,日期時間和數據

我的數據用空格分隔,每一行用新行分隔

現在,我正在使用regexserde讀取輸入內容,但是我想按用戶進行分區。 如果我不再將該用戶用作列,對嗎? 如果是這樣,如何將數據加載到表中?

在Hive中,每個分區對應於HDFS中的一個文件夾。 您可以使用create-table-as-select(CTAS)語句將數據從未分區的Hive表重新加載到新的分區HIve表中。 有關更多詳細信息,請參見https://cwiki.apache.org/Hive/languagemanual-ddl.html#LanguageManualDDL-CreateTable

您可以在HDFS中當前目錄下的子目錄中訂購數據,目錄名稱的格式PART_NAME=PART_VALUE
如果將數據拆分為文件,每個文件中只有一種類型的“用戶”,則只需創建對應於用戶名的目錄(例如USERNAME=XYZ ),然后將與該用戶名匹配的所有文件放入其目錄中。
接下來,您可以創建一個帶有分區的外部表(請參閱示例 )。
唯一的問題是,無論如何,您都必須定義數據中的“用戶”列(但您可以忽略它),並查詢另一列( USERNAME ),該列將提供所需的分區修剪。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM