我创建了一个外部配置单元表,其分区如下-
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;
我正在获取更新的行。每次将数据写入分区表时,是否需要提供此项?有没有其他方式可以自动进行更新?
没有自动刷新分区的选项,我使用的方法是在创建每日拼花地板文件的作业成功运行后,将额外的Hive操作定义为Oozie工作流的一部分。