从 Hive 中现有的 table 创建新的 table
Create new table from the exiting table in Hive
我正在尝试使用 Hive 查询使用现有的 table 创建一个新的 table。
在创建新的 table 时,我想添加一个新列并为所有行插入当前时间戳。
例如:
退出 table:
|user_id|user_name|user_address|
|1001 |userName |address |
新 table:
|user_id|user_name|user_address|creation_date|
|1001 |userName |address | 123421342134|
我正在尝试使用 JDBCTemplate 执行此查询。
我试过的:
Create table newTable Select * from existingtable;
但是那会用旧值复制创建新的 table,我想在 table 创建期间添加新列并插入值。
请帮忙。
您可以 运行 一个 hive one-shot command
只执行一次配置单元。
当您需要 运行 多个查询执行或 运行 需要很长时间执行的更大查询时,此实用程序非常有用。
- 创建一个
myquery.hql
文件,所有查询由 ;
分隔,然后从 hdfs 运行 nohup hive -f /myquery.hql
您可以通过访问 nohup.out 文件继续查看控制台:
tail -f nohup.out
您可以像这样添加新列:
create table newTable AS
select s.*, unix_timestamp(current_timestamp) as creation_date
from existingtable s;
如果您需要使用与现有 table 完全相同的结构定义的新 table,
然后 Hive 使创建新的 table 变得非常容易。
这称为克隆 table,它是使用 LIKE 子句完成的。
新 table 将具有与现有 table 相同的列定义和其他属性,但没有数据。语法是
CREATE TABLE new_table_name LIKE existing_table_name;
CREATE TABLE jobs_archived LIKE jobs;
可以为新 table 指定一些 table 属性
通过在 CREATE TABLE … LIKE 语句中包含适当的子句。
例如,可以使用 LOCATION 和 STORED AS 子句。
如果您需要更改其他属性,请在创建 table 后使用 ALTER TABLE 来设置这些属性。
之后,如果您需要添加更多列,您可以使用 ALTER TABLE 语句。
您可以使用 ADD COLUMNS 将一列或多列添加到列列表的末尾,
一般语法是
ALTER TABLE tablename ADD COLUMNS (col1 TYPE1,col2 TYPE2,… );
ALTER TABLE employees ADD COLUMNS (bonus INT);
您可以将这些句子包装在您的 JDBC 语句中。
希望对您有所帮助。
我正在尝试使用 Hive 查询使用现有的 table 创建一个新的 table。
在创建新的 table 时,我想添加一个新列并为所有行插入当前时间戳。
例如:
退出 table:
|user_id|user_name|user_address|
|1001 |userName |address |
新 table:
|user_id|user_name|user_address|creation_date|
|1001 |userName |address | 123421342134|
我正在尝试使用 JDBCTemplate 执行此查询。
我试过的:
Create table newTable Select * from existingtable;
但是那会用旧值复制创建新的 table,我想在 table 创建期间添加新列并插入值。
请帮忙。
您可以 运行 一个 hive one-shot command
只执行一次配置单元。
当您需要 运行 多个查询执行或 运行 需要很长时间执行的更大查询时,此实用程序非常有用。
- 创建一个
myquery.hql
文件,所有查询由;
分隔,然后从 hdfs 运行nohup hive -f /myquery.hql
您可以通过访问 nohup.out 文件继续查看控制台:
tail -f nohup.out
您可以像这样添加新列:
create table newTable AS
select s.*, unix_timestamp(current_timestamp) as creation_date
from existingtable s;
如果您需要使用与现有 table 完全相同的结构定义的新 table, 然后 Hive 使创建新的 table 变得非常容易。 这称为克隆 table,它是使用 LIKE 子句完成的。 新 table 将具有与现有 table 相同的列定义和其他属性,但没有数据。语法是
CREATE TABLE new_table_name LIKE existing_table_name;
CREATE TABLE jobs_archived LIKE jobs;
可以为新 table 指定一些 table 属性 通过在 CREATE TABLE … LIKE 语句中包含适当的子句。 例如,可以使用 LOCATION 和 STORED AS 子句。 如果您需要更改其他属性,请在创建 table 后使用 ALTER TABLE 来设置这些属性。
之后,如果您需要添加更多列,您可以使用 ALTER TABLE 语句。
您可以使用 ADD COLUMNS 将一列或多列添加到列列表的末尾, 一般语法是
ALTER TABLE tablename ADD COLUMNS (col1 TYPE1,col2 TYPE2,… );
ALTER TABLE employees ADD COLUMNS (bonus INT);
您可以将这些句子包装在您的 JDBC 语句中。
希望对您有所帮助。