繁体   English   中英

如何在蜂巢中按特定列进行分区?

[英]How do I partition in hive by a specific column?

我有3列:用户,日期时间和数据

我的数据用空格分隔,每一行用新行分隔

现在,我正在使用regexserde读取输入内容,但是我想按用户进行分区。 如果我不再将该用户用作列,对吗? 如果是这样,如何将数据加载到表中?

在Hive中,每个分区对应于HDFS中的一个文件夹。 您可以使用create-table-as-select(CTAS)语句将数据从未分区的Hive表重新加载到新的分区HIve表中。 有关更多详细信息,请参见https://cwiki.apache.org/Hive/languagemanual-ddl.html#LanguageManualDDL-CreateTable

您可以在HDFS中当前目录下的子目录中订购数据,目录名称的格式PART_NAME=PART_VALUE
如果将数据拆分为文件,每个文件中只有一种类型的“用户”,则只需创建对应于用户名的目录(例如USERNAME=XYZ ),然后将与该用户名匹配的所有文件放入其目录中。
接下来,您可以创建一个带有分区的外部表(请参阅示例 )。
唯一的问题是,无论如何,您都必须定义数据中的“用户”列(但您可以忽略它),并查询另一列( USERNAME ),该列将提供所需的分区修剪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM