我正在创建一个外部客户,其中包含客户ID,姓名和配偶姓名。
CREATE TABLE customer(cust id, name struct<fname:string,lname:string>,spouse_name struct<fname:string,lname:string>
)row format delimited
fields terminated by ','
collection items terminated by '$';
我想知道,如果传入的数据来源是这样的
1,FNAME1$LNAME1,SPOUSE_FNAME1#SPOUSE_LNAME1
2,FNAME2$LNAME2,SPOUSE_FNAME2#SPOUSE_LNAME2
我不能在“收集项目”的语句两个分隔符。 '$'分隔符只会分隔FNAME *和LNAME *。它不会对SPOUSE_FNAME *和SPOUSE_LNAME *做任何事情。我们是否需要为此编写一个定制的serde?我不确定数据在真实世界中的样子,但很可能在某个时间点我们可以得到这样的数据。
数据处理是应该仔细规划和管理。文本字段也可能包含符号'','''''或'#'。 “将得到我们得到的并且在时间到来时处理它”的方法,不会让你走得太远。 –