在hive中从一个表加载数据到另一个表

hkmswyz6  于 2021-04-02  发布在  Hive
关注(0)|答案(2)|浏览(1018)

我在hive中有一个名为a.table1的表,其中有id,name,class等列,并且已经完全加载了数据。

id name class 
1   a     1
11  b     14

我想从a.table1创建一个新的表b.table2,其中有字段id,name,class,status.当id小于10时,class和status将具有相同的值,否则值将为0。

id name class status
1   a     1     1
11  b     14    0

我正在做的是,创建一个表格。

CREATE TABLE IF NOT EXISTS b.table2(
id BIGINT,
name string,
class int,
status int
)

如何加载表格的内容,或者有什么更好的方法吗?

spark = SparkSession.builder.enableHiveSupport().getOrCreate()
sc = spark.sparkContext
sqlContext = spark._wrapped
7fyelxc5

7fyelxc51#

ctas将在单一语句中创建和加载表。

CREATE TABLE table2 AS
 select id, name, class, status 
   from table1;
1tu0hz3e

1tu0hz3e2#

只需做一个选择并将结果插入到table2中。

insert into b.table2 (
    select *, case when id < 10 then class else 0 end as status from a.table1
);

相关问题