【问题标题】:not able to see hive managed table data using select * command无法使用 select * 命令查看 hive 托管表数据
【发布时间】:2020-12-19 12:44:22
【问题描述】:

我创建了一个 Hive 托管表,并使用 hadoop commnad 在托管表位置复制数据。 这样做之后,每当我从表中选择 * 时,它都不会显示任何数据。 我也试过 msck repair 命令。

    MSCK REPAIR TABLE table_name;

但我仍然无法使用选择命令查看任何数据,我已在托管表位置检查文件是否可用,但使用选择命令我无法查看数据。

有人可以指导我为什么我无法使用 select 命令查看数据。 注意:我的 hive 表是按月列分区的。我在复制数据之前启用了以下属性。

hive> 设置 hive.exec.dynamic.partition=true; hive> 设置 hive.exec.dynamic.partition.mode=nonstrict;

【问题讨论】:

  • 它应该可以工作。您是如何复制数据的,请提供详细信息?检查分区位置(使用显示分区表)如果分区已经创建,将数据复制到其位置应该可以正常工作。如果未创建分区,则需要修复表

标签: hadoop hive


【解决方案1】:

我建议你检查一下默认文件格式,只需输入 Hive shell

set hive.default.fileformat;

并查看输出。如果和复制文件的格式不一样,那么在建表的时候要注明对应的格式,比如

create table tbl as
select * from another table
stored as orc

或者您可以在创建表格之前设置不同的格式,例如,

set hive.default.fileformat=orc;

请记住,如果您的数据格式是textfile,那么您还需要在 create 语句中指明分隔符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 2020-06-28
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多