使用“段落”类型列(包含各种特殊字符)从CSV创建Hive表

时间:2019-05-18 17:19:28

标签: sql hadoop hive ddl

我正在尝试从csv加载蜂巢中的表,并且其中一列由代码组成-由诸如''/,*-tab空格换行符()等字符组成。

我对以下代码有很多诠释(用不同的字符(|,',“)对列进行转义,删除换行符和空格,尝试使用不同的数据类型),并且至少创建了表-但是代码列显示了很多每行以及其他列(在选择*创建的表时显示)的所有位置均为空:


drop table if exists max.rule_nscript purge;

create external table max.rule_nscript
(
display_name VARCHAR(50)
,rule_name VARCHAR(50)
,family_names VARCHAR(1000)
,placements VARCHAR(255)
,state VARCHAR(255)
,impact_type VARCHAR(25)
,score_impact VARCHAR(10)
,description VARCHAR (1000)
,nscript VARCHAR (1000)
,run_mode VARCHAR(25)
)

--row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
--with SERDEPROPERTIES (
--  "separatorChar" = "\,"
--  ,"quoteChar" = "\""
--  ,"escapeChar" = "\t"
--  )
row format delimited
fields terminated by ','
escaped by '\|'
--stored as textfile
location '/user/mbade0314/rule_nscript'
tblproperties ("skip.header.line.count"="1");

select * from max.rule_nscript;

预期结果应如下所示-不包含null和每行一条规则:

display_name    rule_name   family_names    placements  state   impact_type score_impact    description nscript run_mode        
rule 1  rule 1  misc_   na  enabled negative    1000    na  code    Require Referenced Data NULL    NULL
rule 2  rule 2  emulator_   na  enabled negative    650 na  code    Require Referenced Data NULL    NULL
rule 3  rule 3  root_jailbreak_detection_   na  enabled informative 0   na  code    Require Referenced Data NULL    NULL
rule 4  rule 4  crimeware_  na  enabled negative    2000    na  code    NULL    NULL    NULL
    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        
code    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        
code    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL        

*为丑陋的表道歉-创建表似乎并不容易。

任何建议都会很棒。

谢谢!

0 个答案:

没有答案