我有多个csv文件,其中包含人员的详细信息。我使用-copyFromLocal命令将其复制到HDFS中,并使用配置单元表查看它。但现在我的新用例是,我本地的这些csv文件每天都会更新。我希望这些数据在HDFS中更新,就像Sqoop Incremental导入将数据从RDBMS复制到HDFS一样。有什么方法可以做吗?并建议我如何做。
假设每个文件都包含相同的字段。
创建一个顶级HDFS目录,为每天的放置日期分区
/daily_import
/day=20180704
/file.csv
/day=20180705
/file.csv
然后在上定义一个表
CREATE EXTERNAL TABLE daily_csv (
...
) PARTITIONED BY (`day` STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' STORED AS TEXT -- Use CsvSerde instead!
LOCATION '/daily_import'
;
然后,每天在将文件复制到适当的HDFS位置后,对新分区执行元存储刷新
MSCK REPAIR TABLE daily_csv;