我是hadoop生态系统的新手。我尝试使用下面的查询从csv文件创建配置单元表。
CREATE EXTERNAL TABLE IF NOT EXISTS proxy_data(
date_time TIMESTAMP,time_taken INT, c_ip STRING,
sc_status INT, s_action STRING, sc_bytes INT,
cs_bytes INT, cs_method STRING, cs_uri STRING,
cs_host STRING, uri_port INT, uri_path STRING,
uri_query STRING, username STRING, auth STRING,
supplier_name STRING, content_type STRING, referer STRING,
user_agent STRING, filter_result STRING, categories STRING,
x_virus_id STRING, proxy_ip STRING
)
COMMENT 'Proxy logs'
LOCATION '/user/admin'
tblproperties ("skip.header.line.count"="1");
这个查询实际上创建了一个表代理数据,并填充了位于指定位置的csv文件中的值。
现在,我想将另一组csv的值附加到同一个表中(它应该跳过csv文件中的标题)。我检查了各种各样的解决方案,但都不能满足我的需要。
3条答案
按热度按时间l2osamch1#
你能试试这个吗:
ebdffaop2#
您可以向表中添加一个属性,该属性将跳过csv的第一行。“skip.header.line.count“=“1”
就你而言,
sh7euo9m3#
您可以遵循以下方法:
使用此属性创建临时表-skip.header.line.count=1
创建具有相同架构的主表(无需使用
skip.header.line.count
子句)。每次有新文件时,都将覆盖加载到暂存表中
然后,将append staging表的数据加载到主表中。
p、 s:您的表语法没有
row format delimited
条款。请确保按上述方式添加