我创建了一个带有以下分区的外部配置单元表-
CREATE EXTERNAL TABLE IF NOT EXISTS engine_power(
engine_company string,
engine_model_name string,
power_timestamp timestamp,
rotor_efficiency float,
rotor_power float,
rotor_speed float)
PARTITIONED BY (year int, month int, day int) STORED AS PARQUET
location '/powerCalculation' ;
此后,我在pyspark中执行一些计算,然后将最终数据帧写入如下所示的镶木地板文件中-
df.write.partitionBy('year','month','day').parquet("/powerCalculation",mode='append')
它将在上述位置用新文件夹创建年,月和日的镶木地板文件,但是当我查询该表时,它不显示任何数据,select * from engine_power
不返回任何行。它只是给其中没有数据的列。搜索各种文章后,如果我发表声明
MSCK REPAIR TABLE engine_power;
我正在获取更新的行。每次将数据写入分区表时都需要这样做吗?还有其他方法可以自动进行此更新吗?
答案 0 :(得分:0)
没有自动选项来刷新分区,我使用的方法是在成功创建每日Parquet文件的作业成功运行后,将其他Hive动作定义为Oozie工作流程的一部分。