Hive由多个列聚集

lea*_*man 8 hadoop hive buckets

据我所知,当hive表在一列上聚类时,它会执行该bulkted列的哈希函数,然后将该行数据放入其中一个桶中.并且每个桶都有一个文件,即如果有32个桶,则hdfs中有32个文件.

在多个列上进行聚簇是什么意思?例如,假设该表具有CLUSTERED BY(大陆,国家)INTO 32 BUCKETS.

如果有多个列,如何执行散列函数?

将生成多少个文件?这还是32吗?

Mad*_* RS 7

  1. 是的,文件数仍为32.
  2. 哈希函数将通过将"continent,country"视为单个字符串来运行,然后将其用作输入.

希望能帮助到你!!

  • 如果将存储桶作为复合列应用到两列中,则只有当您将两个列都用作连接条件时,存储桶映射联接才会受益。如果您仅使用其中一个(即本例中的国家)作为加入标准,这将无济于事。 (2认同)