首先,我创建了由代码和日期分区的hive外部表
CREATE EXTERNAL TABLE IF NOT EXISTS XYZ
(
ID STRING,
SAL BIGINT,
NAME STRING,
)
PARTITIONED BY (CODE INT,DATE STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat"
OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat"
LOCATION '/old_work/XYZ';
Run Code Online (Sandbox Code Playgroud)
然后我在此表上执行insert overwrite从其他表中获取数据
INSERT OVERWRITE TABLE XYZ PARTITION (CODE,DATE)
SELECT
*
FROM TEMP_XYZ;
Run Code Online (Sandbox Code Playgroud)
之后我计算了来自XYZ的蜂巢选择计数(*)中的记录数; 它显示我有1000条记录,然后我重命名或将位置'/ old_work/XYZ'移动到'/ new_work/XYZ'
然后我再次放下XYZ表并再次创建指向新目录的位置意味着'/ new_work/XYZ'
CREATE EXTERNAL TABLE IF NOT EXISTS XYZ
(
ID STRING,
SAL BIGINT,
NAME STRING,
)
PARTITIONED BY (CODE INT,DATE STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat"
OUTPUTFORMAT …Run Code Online (Sandbox Code Playgroud)