簡體   English   中英

在 Hive SQL 中,根據另一個表中帶有分區鍵的列創建表

[英]in Hive SQL, create table based on columns from another table with partition key

我想根據現有表中的列創建一個新表,在 hive 中添加一個新分區 col。

我想在 hive sql 中實現目標。

除了下面的 sql 或使用 ETL 工具(如kettle)之外,還有其他方法嗎?

如果不存在則創建表 table_name(
列1,
col2,
col3,
……,
冒號
) 由 dt 分區;

其中 col1 到 coln 來自已經存在的舊表,而 dt 是新添加的分區鍵。

因為舊表太大,可能有數百列,列出它們會很累。

但是,以下sql顯示語法錯誤:

如果不存在則創建表 table_name 就像由 dt 分區的 old_table_name;

所以我想知道有沒有其他更好的方法可以在 hive sql 中解決這個問題? 謝謝你。

如果所有列和 dt 列都可以使用以下方式創建分區表:

CREATE TABLE newtable (col1 int, col2 string) PARTITIONED BY (dt string) AS
SELECT col1 , col2, dt FROM oldtable WHERE dt is not null;

暫無
暫無

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

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