HDFS中的数据如下所示:
/ad_data/raw/reg_logs/utc_date=2014-06-11/utc_hour=03
注意:数据每天和每小时加载到HDFS目录/ad_data/raw/reg_logs中。
此HDFS目录中有3个.tsv文件:
funel1.tsv
funel2.tsv
funel3.tsv
2344 -39 223
2344 -23 443
2394 -43 98
2377 -12 33
...
...
CREATE EXTERNAL TABLE IF NOT EXISTS reg_logs (
id int,
region_code int,
count int
)
PARTITIONED BY (utc_date STRING, utc_hour STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/ad_data/raw/reg_logs';
我怎样才能实现呢?如果需要,请更正我的配置单元表模式和获取数据的方法。
==
第二部分:
CREATE EXTERNAL TABLE IF NOT EXISTS reg_logs_org (
id int,
region_code int,
count int
)
PARTITIONED BY (utc_date STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/ad_data/reg_logs_org';
insert overwrite table reg_logs_org
select id, region_code, sum(count), utc_date
from
reg_logs
group by
utc_date, id, region_code
FAILED: SemanticException 1:23 Need to specify partition columns because the destination table is partitioned. Error encountered near token 'reg_logs_org'
Thank you,
Rio
你们很亲密。最后一步是您需要将分区信息添加到Hive的转移体中。配置单元单独存储每个分区的位置,它不会自动查找新分区。有两种方法可以添加分区:
>
每小时执行一次add partition
语句:
alter table reg_logs add partition(utc_date='2014-06-11', utc_hour='03')
location '/ad_data/raw/reg_logs/utc_date=2014-06-11/utc_hour=03';
每小时(或不那么频繁)做一次桌子修理。这将扫描根表位置中尚未添加的任何分区。
msck repair table reg_logs;
第一种方法更痛苦,但效率更高。第二种方法很简单,但每次都要对所有分区进行全面扫描。
编辑:问题后半部分:
您只需要添加一些语法,以便使用动态分区插入到表中。一般情况下是:
insert overwrite [table] partition([partition column])
select ...
insert overwrite table reg_logs_org partition(utc_date)
select id, region_code, sum(count), utc_date
from
reg_logs
group by
utc_date, id, region_code
我将Spring Boot与和依赖项。我的wiremock定义存储在json文件中。就像这样: 目录A/映射/detail-mapping-123.json: 目录a/_文件/详细信息。json: 目录B/mappings/search-mapping-123。json: 目录b/_文件/search-123。json: 我有一个标准的JUnit测试类,它带有以下注释: 这些文件看起来被wirem
XML 映射配置文件 MyBatis 的 XML 配置文件包含了影响 MyBatis 行为甚深的设置和属性信息。 XML 文档 的高层级结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 e
15/07/01 07:32:46[main]:错误HDFS.KeyProviderCache:找不到包含密钥[DFS.Encryption.key.Provider.uri]的uri来创建密钥提供程序!!OK+-----------+------------++++ testtab1.id testtab1.org +------------+-----------------++++ 其他人s
我有4张桌子: 库存(库存ID、可用数量) 一个客户可以有多个订单,而一个订单由多个orderDetails项目组成。我正在尝试将库存项目存储在由库存项目和数量整数组成的映射中。 当我尝试以这种方式持久化它时,第一个库存项目将以1的orderID添加到Order详细信息表中。但是下一个是使用2的orderID插入的(不存在)。 有什么帮助吗?
埃弗里翁。我正在尝试创建一个基本表单,将姓氏和姓氏保存在一个文本文件中,因此当我必须登录时,我将从txt文件中检索它们,但显然我对txt文件的目录做了一些错误 现在我更新了代码,出现了这个安全错误 警告:fopen(/home/sbau01/public_www/php/fma/data/data.txt):无法打开流:在/home/sbau01/public_www/php/fma/form中的
主要内容:DocumentRoot,DocumentRoot之外的文件,用户目录,URL重定向,反向代理,重写引擎,文件未找到本文将介绍Apache HTTP Server如何使用请求的URL来确定从中提供文件的文件系统位置。 DocumentRoot 在决定为给定请求提供什么文件时,httpd的默认行为是获取请求的URL-Path(主机名和端口后面的URL部分),并将其添加到配置文件中指定的的末尾。因此,下面的文件和目录构成了可从Web上看到的基本文档树。 例如,如果设置为时,则对的请求会将文