我有CSV,其中我的字符串列很少。我创建了如下的蜂巢表结构。
当我使用“在路径中加载”命令将数据加载到配置单元表时,即使字符串列不存在,它也会在字符串列周围自动添加双引号(链接到CSV的屏幕截图以供参考)。
在我的情况下,它在仓库和过程列周围添加了双引号。我尝试使用CSVSerde,但使用它后,它将所有列默认转换为字符串。
是否有任何Hive属性可用来避免这些不必要的引号?当csv中不存在它们时,为什么它们会进入表中。
配置单元表结构:
**create table if not exists epo.temp
(
asof_period string
,period string
,item_id string
,stockroom string
,process string
,tot_qty decimal(11,2)
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
TBLPROPERTIES ("skip.header.line.count"="1");
LOAD DATA INPATH 'Path_to_csv_file' into table epo.temp;**
编辑-找到解决方法 我正在使用一种解决方法,在这种方法中,我将使用CSVserde的数据加载到一个临时表中,然后通过将所需数据类型的列强制转换为实际表中。但是,如果有人可以帮助我采取更清洁的方法,我将不胜感激。