Hadoop 如何在配置单元中为修复文件格式创建嵌套表
在我的研究中,我们使用协议格式和数据。但我在为这些数据嵌套表创建表时遇到问题。例如,基本消息格式由msg1给出,从^A1128开始,到^A10结束。现在,对于msg2,我们有相同的基本消息,从^A1128开始,多条消息从^A1023开始,到^A346结束 数据以不带空格的行顺序出现,并且在消息末尾有一个\n字符。像这样的,Hadoop 如何在配置单元中为修复文件格式创建嵌套表,hadoop,database-design,hive,fix-protocol,Hadoop,Database Design,Hive,Fix Protocol,在我的研究中,我们使用协议格式和数据。但我在为这些数据嵌套表创建表时遇到问题。例如,基本消息格式由msg1给出,从^A1128开始,到^A10结束。现在,对于msg2,我们有相同的基本消息,从^A1128开始,多条消息从^A1023开始,到^A346结束 数据以不带空格的行顺序出现,并且在消息末尾有一个\n字符。像这样的, ^A1128=9^A9=157^A35=X^A49=CME^A34=406238^A52=20130715123719934^A75=20130715^A268=1^A279
^A1128=9^A9=157^A35=X^A49=CME^A34=406238^A52=20130715123719934^A75=20130715^A268=1^A279=1^A22=8^A48=28112^A83=49004^A107=ESZ3^A269=1^A270=166775^A271=186^A273=123719000^A336=2^A346=3^A1023=1^A10=210^A
下面是我用来在配置单元中创建表但没有成功的代码
CREATE EXTERNAL TABLE fix_map
(tag MAP<INT, STRING>)
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '1'
FIELDS TERMINATED BY '2'
MAP KEYS TERMINATED BY '='
LOCATION '/user/data/';
如果您有任何建议,我将不胜感激。我没有找到这个问题的具体答案,我使用了不同的方法来解决这个问题。第一种解决方案是创建两个不同的表,一个用于主修复程序,另一个用于嵌套零件,然后连接两个表。我使用以下代码创建第一个表:
CREATE TABLE futures_fix(
tag MAP<INT,STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '2'
COLLECTION ITEMS TERMINATED BY '1'
MAP KEYS TERMINATED BY '='
LOCATION '/user/lcoation/data/';
CREATE TABLE futures_fix(
tag MAP<INT,STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '2'
COLLECTION ITEMS TERMINATED BY '1'
MAP KEYS TERMINATED BY '='
LOCATION '/user/lcoation/data/';
{
"ApplVerID":"FIX50SP2",
"BodyLength":"136",
"MsgType":"MARKETDATAINCREMENTALREFRESH",
"SenderCompID":"CME",
"MsgSeqNum":"578",
"SendingTime":"20130714180133577",
"TradeDate":"20130715",
"NoMDEntries":"1",
"MDEntries":[
{
"MDUpdateAction":"NEW",
"SecurityIDSource":"EXCHANGE SYMBOL",
"SecurityID":"111473",
"SettlDate":"20130712",
"RptSeq":"1",
"SecurityDesc":"ESU4",
"MDEntryType":"SETTLEMENT PRICE",
"MDEntryPx":"164350",
"MDEntryTime":"180133000"
}
],
"CheckSum":"248"
}