创建和删除表
上一节使用CREATE TABLE语句创建了Iceberg表。除此之外,Iceberg也支持CTAS和RTAS方法来创建表。下面分别来了解这两种方法。
1.CTAS(create table ... as select)
在使用SparkCatalog时,Iceberg支持CTAS作为原子操作。在使用SparkSessionCatalog时CTAS虽然是受支持的,但不是原子的。
下面应用CTAS创建一个新的Iceberg表my_tb2,其内容来自my_tb1中所有id为偶数的行。代码如下:
// CTAS spark.sql(""" CREATE TABLE hadoop_prod.my_db.my_tb2 USING iceberg AS select * from hadoop_prod.my_db.my_tb1 where id%2==0 """) // 查询新表的数据 spark.table("hadoop_prod.my_db.my_tb2").show()
执行上面的代码,查询结果如下:
+---+----+ | id|data| +---+----+ | 2| b| | 4| d| +---+----+
2.RTAS(replace table ... as select)
当使用SparkCatalog时,Iceberg支持RTAS作为原子操作。在使用SparkSessionCatalog时RTAS虽然是受支持的,但不是原子的。原子表替换使用SELECT查询的结果创建一个新的快照,但保留表历史。
下面应用RTAS使 ......
......
抱歉,只有登录会员才可浏览!会员登录