我正在尝试从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
*为丑陋的表道歉-创建表似乎并不容易。
任何建议都会很棒。
谢谢!