【问题标题】:Hive partition columns folders exchangedHive 分区列文件夹已交换
【发布时间】:2018-11-22 15:16:04
【问题描述】:

我在 hive 中有一个 partitioned_table,它按“年,月”分区,所以我的 hdfs 列表是

/user/hive/warehouse/demo.db/employee/year=2017/month=6

当我使用“export”导出表并使用“import”创建新表时,结果是交换的年份和月份,列表是

/user/hive/warehouse/demo.db/new_employee/month=6/year=2017

我的 hive 版本是 1.2.2 和查询:

export table employee into /user/hadoop/data

import table new_employee from /user/hadoop/data

hive 中的分区与原始表(我导出的表)没有什么不同。即使我添加了一个新分区,目录也没有改变,它的工作方式是'/month=7/year=6'

那么发生了什么问题?感谢您的帮助!

【问题讨论】:

  • 试试show partitions tablename有什么不同吗?
  • 导入语句你使用了什么查询?
  • 分区没有变化

标签: hive partition


【解决方案1】:

您查看数据的方式是否存在问题,只要您没有该问题,那么这不是问题。顺便说一句,这是导出分区表的正确导出命令

export table employee partition (year="2017", month="6") to 'hdfs_exports_location/employee';
import from 'hdfs_exports_location/employee';

好吧,如果您在年份和月份上有更多分区..就像每年将有 12 个月的数据一样,我认为您可能必须为每个月执行单独的命令..我没有尝试过..只需使用上述方法尝试命令让我们知道它是怎么来的

【讨论】:

  • 我知道你的意思,所有人都告诉我应该一个一个地导出或导入分区,但我只想知道这个问题是不是bug?为什么会这样?
  • 这不是问题..你可以说这是来自蜂巢的限制..到目前为止,这是这样做的方式..将来他们可能会像我们一样正常的导出方式为普通桌子做这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
相关资源
最近更新 更多