0

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

我的数据是空格分隔的,每一行都由一个新行分隔

现在我正在使用正则表达式读取我的输入,但是我想由用户进行分区。如果我这样做,那个用户就不能再成为一个列,对吗?如果是这样,我如何将数据加载到我的表中?

4

2 回答 2

0

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

于 2013-08-27T16:23:56.860 回答
0

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

于 2013-08-26T19:20:30.613 回答