mapreduce - Hive 中的动态分区

标签 mapreduce hive

我是 hive 新手。 我的输入文件的形式为 (ID,日期(YYYY-MM-DD),小时(HH),键,值)。表分区于(日期,小时) 输入文件包含 7 天(每天 24 小时)的数据。当我将此数据加载到配置单元表中时,我需要将数据加载到表的各个分区中。 有人可以帮我吗?

谢谢, 苏达卡。

最佳答案

一种方法是首先将数据加载到未分区的表中(例如下面示例中的 tmp_some_table )。然后你可以这样做:

  set hive.exec.dynamic.partition=true;
  set hive.exec.dynamic.partition.mode=nonstrict;
  from tmp_some_table tt
  insert overwrite table some_table partition(day, hour)
  select
    id,
    key,
    value, 
    day,
    hour

分区必须是 select 子句中的最后一列。以上适用于 hive 0.7.1。请参阅the wiki了解更多信息。请注意,如果您有 too many partitions you'll get errors .

关于mapreduce - Hive 中的动态分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622053/

相关文章:

hadoop - 查询 avro 支持的配置单元表时出错 : java. lang.IllegalArgumentException

Hadoop 2.2.0 Web UI 不显示作业进度

javascript - mongodb 按字符串长度分组

hadoop - 在 Pig 的 Parquet 上使用 hive 表

java - 在 Hortonworks 上使用 Jdbc 远程连接到 Hive 时出现 ClassNotFoundException

hadoop - 在hadoop/hive中执行脚本

eclipse - 在hadoop上运行kmeans时PriviledgedActionException

mongodb - 如何使用动态组优化缓慢的 Mongo MapReduce

apache-spark - YARN 如何决定启动哪种类型的 Application master?

hadoop - 如何在单节点中安装大数据生态系统