XML Serde для Hadoop / Hive - PullRequest
       6

XML Serde для Hadoop / Hive

1 голос
/ 08 марта 2012

Я использовал JSONSerde для обработки огромных объемов данных JSON, хранящихся на S3, с помощью Amazon EMR.У одного из моих клиентов есть требование обрабатывать массивные данные XML, но я не смог найти ни одного Serde XML для использования с HIVE.

Ребята, вы обрабатывали XML с помощью улья?Буду признателен за ваши предложения и комментарии по этому поводу, прежде чем я начну создавать свой собственный XML Serde.

Ответы [ 2 ]

0 голосов
/ 17 августа 2018

Ссылка для скачивания xmlserde: http://central.maven.org/maven2/com/ibm/spss/hive/serde2/xml/hivexmlserde/1.0.0.0/hivexmlserde-1.0.0.0.jar

Поместите этот файл jar в путь / usr / lib / hive / lib

Как только вы закончите с этим, вы можете использовать этот xml serde:

   CREATE TABLE xml_bank(customer_id STRING, income BIGINT, demographics 
   map<string,string>, financial map<string,string>)
   ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
   WITH SERDEPROPERTIES (
   "column.xpath.customer_id"="/record/@customer_id",
   "column.xpath.income"="/record/income/text()",
   "column.xpath.demographics"="/record/demographics/*",
   "column.xpath.financial"="/record/financial/*"
    )
    TBLPROPERTIES (
    "xmlinput.start"="<record customer",
    "xmlinput.end"="</record>"
    );
0 голосов
/ 25 июля 2014

Я использую следующее для XML-разбора serde в улье ---

CREATE EXTERNAL TABLE XYZ(
X STRING, 
Y STRING, 
Z ARRAY<STRING>
 )
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
WITH SERDEPROPERTIES (
"column.xpath.X"="/XX/@X",
"column.xpath.Y"="/YY/@Y"
)
STORED AS
INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION '/user/XXX' 
TBLPROPERTIES (
"xmlinput.start"="<xml start",
"xmlinput.end"="</xml end>"
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...