La especificación de correlación para el elemento XML indicado debe definirse en la sección
SERDEPROPERTIES del DDL de creación de tablas de Hive. Las claves y los valores pueden definirse
utilizando la sintaxis siguiente:
@attribute
La especificación @attribute permite al usuario utilizar el valor del atributo como clave o valor de
la correlación.
element
El nombre de elemento puede utilizarse como valor o clave.
#content
El contenido del elemento puede utilizarse como valor o clave. Dado que las claves de correlación
sólo pueden ser de tipo primitivo, el contenido complejo se convertirá a serie.
Los métodos para representar las correlaciones en XML y sus correspondientes datos en bruto y DDL de
Hive son los siguientes.
Nombre de elemento a contenido
El nombre del elemento se utiliza como clave y el contenido como valor. Esta es una de las
técnicas comunes y se utiliza de forma predeterminada al correlacionar XML con tipos de
correlación de Hive. La limitación evidente de este enfoque es que la clave de correlación sólo
puede ser de tipo serie.
Datos XML
<entry1>value1</entry1>
<entry2>value2</entry2>
<entry3>value3</entry3>
Correlación, DDL Hive y datos en bruto
En este caso, no es necesario especificar una correlación debido a que el nombre del
elemento se utiliza como clave y el contenido como valor de forma predeterminada.
result map<string,string>
{"result":{"entry1": "value1", "entry2": "value2", "entry3": "value3"}}
Atributo a contenido de elemento
Se utiliza un valor de atributo como clave y el contenido del elemento como valor.
Datos XML
<entry name="key1">value1</entry>
<entry name="key2">value2</entry>
<entry name="key3">value3</entry>
Correlación, DDL Hive y datos en bruto
"xml.map.specification.entry"="@name->#content"
result map<string,string>
{"result":{"key1": "value1", "key2": "value2", "key3": "value3"}}
Atributo a atributo
Datos XML
<entry name="key1" value="value1"/>
<entry name="key2" value="value2"/>
<entry name="key3" value="value3"/>
Correlación, DDL Hive y datos en bruto
"xml.map.specification.entry"="@name->@value"
result map<string,string>
{"result":{"key1": "value1", "key2": "value2", "key3": "value3"}}
18
IBM SPSS Analytic Server Versión 3.0: Guía del usuario