有没有办法用多个递增命名的文件创建一个hive表?我有一堆文件按天分开,我想在这些日期的时间范围内创建一个表格。
例如,如果我想从8月份的所有文件创建一个表,我该如何创建该表?我是否必须通过更改表格来单独添加每个文件,还是像在单个查询中添加所有文件一样的正则表达式?
答案 0 :(得分:0)
Hive Metastore仅跟踪分区信息和给定表的路径信息。因此,要加载数据,您不必将其限制为Hive LOAD DATA命令可以执行的操作。
假设您在名为mydatabase的数据库中有一个名为mytable的未分区表,而您的hive仓库目录是hdfs:// apps / hive / warehouse。然后,您可以将数据移动到该目录中,它将显示在表中(假设输入格式与创建表的内容兼容)。因此,您可以使用标准文件系统操作来移动数据,包括使用globs,例如,仅复制从2013-08开始的文件的数据,您可以执行以下操作:
hadoop fs -cp /my/hdfs/data/directory/2013-08-*.txt /apps/hive/warehouse/mydatabase.db/mytable
或者您的数据是否在本地文件系统上
hadoop fs -put /my/local/data/directory/2013-08-*.txt /apps/hive/warehouse/mydatabase.db/mytable