Json 配置单元:如何将多个数组的结果放入一个数组结果集中
我有一个配置单元表,用于存储以下示例定义的json对象: {bpy:[{bpyNr:string,anr:string}] 我加载了3个文件,如下所示: 文件1Json 配置单元:如何将多个数组的结果放入一个数组结果集中,json,hive,Json,Hive,我有一个配置单元表,用于存储以下示例定义的json对象: {bpy:[{bpyNr:string,anr:string}] 我加载了3个文件,如下所示: 文件1 {"bpy":[ {"bpyNr":"","anr":"BESHPR","al1Te":"123 BELWAFFLE","al2Te":"ADDR LINE2","al3Te":"ADDR LINE3","ctcNa":"FROMBE LAGO","cnyCd":"ES","cnySdvCd":"","divNa":"BRUSSELS"
{"bpy":[
{"bpyNr":"","anr":"BESHPR","al1Te":"123 BELWAFFLE","al2Te":"ADDR LINE2","al3Te":"ADDR LINE3","ctcNa":"FROMBE LAGO","cnyCd":"ES","cnySdvCd":"","divNa":"BRUSSELS","emlTe":"","faxNr":"","munNa":"","na":"BELGUIM SHIPPER","phnNr":"18889991234","pslCd":"1000","bpyRlCd":"01"}]}
文件2:
{"bpy": [
{"bpyNr":"","anr":"00005483WW","al1Te":"14 RICH WAY","al2Te":"REC ADDR2","al3Te":"REC ADDR3","ctcNa":"IAMRECEIVER","cnyCd":"ES","cnySdvCd":"","divNa":"PORT ELIZABETH","emlTe":"CONS-EMAIL@YAHOO.NET","faxNr":"7747747774","munNa":"","na":"AFRICAN SHIPPERS","phnNr":"2018289999","pslCd":"6001","bpyRlCd":"02"}, {"bpyNr":"","anr":"UPS11111","al1Te":"","al2Te":"","al3Te":"3","ctcNa":"","cnyCd":"US","cnySdvCd":"","divNa":"","emlTe":"","faxNr":"","munNa":"","na":"THIRD PARTY SHIPPXX","phnNr":"2018289999","pslCd":"","bpyRlCd":"05"}
]}
它们被加载到一个蜂箱外部表businessparty\u tbl
当我查询表时,我得到这个结果
hive> select bpy.anr from businessparty_tbl;
OK
NULL
NULL
NULL
NULL
["BESHPR"]
["00005483WW","UPS11111"]
有没有办法得到这样的结果:
[NULL, NULL, NULL, NULL, "BESHPR", "00005483WW","UPS11111"]
更新:增加了业务方定义
ADD JAR /opt/cloudera/parcels/CDH/jars/hive-hcatalog-core-1.1.0-cdh5.4.7.jar;
DROP TABLE IF EXISTS brokerage.businessparty_tbl;
CREATE EXTERNAL TABLE IF NOT EXISTS brokerage.businessparty_tbl (
bpy array<struct<bpyNr :STRING COMMENT "businessPartyNumber",
anr :STRING COMMENT "accountNumber",
al1Te :STRING COMMENT "addressLine1Text",
al2Te :STRING COMMENT "addressLine2Text",
al3Te :STRING COMMENT "addressLine3Text",
crrCd :STRING COMMENT "carrierCode",
ctcEmlAdTe :STRING COMMENT "contactEmailAddressText",
ctcFaxLinNr :STRING COMMENT "contactFaxLineNumber",
ctcNa :STRING COMMENT "contactName",
ctcPhnNr :STRING COMMENT "contactPhoneNumber",
ctcDepNa :STRING COMMENT "contactDepartmentName",
ctcDivNa :STRING COMMENT "contactDivisionName",
cnyCd :STRING COMMENT "countryCode",
cnySdvCd :STRING COMMENT "countrySubdivisionCode",
dunsNr :STRING COMMENT "dunsNumber",
depNa :STRING COMMENT "departmentName",
divNa :STRING COMMENT "divisionName",
emlTe :STRING COMMENT "emailText",
faxNr :STRING COMMENT "faxNumber",
munNa :STRING COMMENT "municipalityName",
na :STRING COMMENT "name",
phnNr :STRING COMMENT "telephoneNumber",
pslCd :STRING COMMENT "postalCode",
sutTe :STRING COMMENT "suiteText",
crrNa :STRING COMMENT "carrierName",
shrCrCrdNr :STRING COMMENT "shipperCreditCardNumber",
shrCrCrdExpDt :STRING COMMENT "shipperCreditCardExpirationDate"
>>
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe';
load data local inpath '/data/5/sys1deh/brokerage/testdata/BAS/SHIPMENTS/' OVERWRITE into table brokerage.businessparty_tbl;
添加JAR/opt/cloudera/parcels/CDH/jars/hive-hcatalog-core-1.1.0-cdh5.4.7.JAR;
如果存在brokerage.businessparty\u tbl,则删除表格;
如果不存在,则创建外部表brokerage.businessparty\u tbl(
bpy阵列
)
行格式SERDE'org.apache.hive.hcatalog.data.JsonSerDe';
将路径“/data/5/sys1deh/broker/testdata/BAS/shippings/”中的本地数据加载到表brokerage.businessparty\u tbl中;
share businessparty\u tbl table DDL statement也请?@squid,我在原始帖子中添加了定义。谢谢!