问题:将带有 ORC 文件的分区文件夹复制到另一个外部分区 ORC 表后,行数不正确
我在 dev 模式中有这个员工表。该表是一个外部分区的 ORC 表。
CREATE EXTERNAL TABLE dev.employee(empid string, empname string, update_gmt_ts timestamp) PARTITIONED BY (partition_upd_gmt_ts string) 存储为 orc location '/dev/employee';
我在这些分区文件夹中有兽人数据文件。
hdfs dfs -ls /dev/employee
drwxr-xr-x - user1 group1 0 2017-02-08 10:25 /dev/employee/partition_upd_gmt_ts=201609 drwxr-xr-x - user1 group1 0 2017-02-08 10:24 /dev/employee/partition_upd_gmt_ts=201610
当我执行这个查询
从 dev.employee 中选择 count(*),其中 1=1;
1000 -- 正确的行数
我在 prod 模式中有另一个员工表的表副本。这也是一个外部分区的 ORC 表。我也想将相同的数据推送到该表中。
创建外部表 prod.employee(empid 字符串,empname 字符串,update_gmt_ts 时间戳)分区(partition_upd_gmt_ts 字符串)存储为 orc 位置'/prod/employee';
所以我做了一个hdfs副本
hdfs dfs -cp /dev/employee/* /prod/employee/
数据被复制了。
hdfs dfs -ls /prod/employee
drwxr-xr-x - user1 group1 0 2017-02-08 10:25 /prod/employee/partition_upd_gmt_ts=201609 drwxr-xr-x - user1 group1 0 2017-02-08 10:24 /prod/employee/partition_upd_gmt_ts=201610
但是当我执行 count 查询时,我得到了零行。
你能帮我解释一下为什么我没有得到与行数相同的 1000。
从 prod.employee 中选择 count(*),其中 1=1;
0 -- 错误的行数