如何为配置单元的分区表指定hdfs位置

6mw9ycah  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(275)

我有一个hdfs目录,因为我有这么多的文件。这个目录正在获取连续的数据。现在我正在尝试为hdfs位置创建一个外部分区表,如,

create external table sensor_data(sensor_name string,alert_type string,isvalid_alert boolean,value string,alert_generated_time bigint)
 partitioned by (mac_id string)
clustered by(sensor_name) into 13 buckets
row format delimited
fields terminated by '|'
lines terminated by '\n'
location '/user/test';

表正在成功创建,但在选择时没有显示任何内容。选择from sensor_data where mac_id='mac_id2';从传感器数据中选择
我试过这两种方法,我所缺少的是无法理解的。请帮助我。

qij5mzcb

qij5mzcb1#

配置单元中的分区表具有特定结构:
在table位置 /user/test 每个分区必须有一个文件夹:

/user/test/mac_id=1
/user/test/mac_id=2
...

另外,在创建新文件夹/分区时,需要通过运行 MSCK REPAIR TABLE sensor_data 请注意,数据必须具有您定义的分隔符。
另外,由于表是集群的,所以需要对数据进行集群。
我建议首先使用hive的 INSERT INTO TABLE 查看数据的正确格式。

相关问题