Tests if the result of a query is empty.
An XQuery or XPath expression. It must be a constant value, because it is only read the first time the function is evaluated. The initial query string is compiled and reused in all subsequent calls.
You can access files that are stored in the Hadoop distributed cache and HTTP resources (http://...
). Use the XQuery fn:doc
function for XML documents, and the fn:unparsed-text
and fn:parsed-text-lines
functions to access plain text files.
If an error occurs while compiling the query, the function raises an error. If an error occurs while evaluating the query, the error is logged (not raised), and an empty array is returned.
The input that the query processes. The value can be an XML STRING
or a STRUCT
of variable values:
STRING
: The string is bound to the initial context item of the query as XML.
STRUCT
: A STRUCT
with an even number of fields. Each pair of fields defines a variable binding (name, value) for the query. The name fields must be type STRING
, and the value fields can be any supported primitive. See "Data Type Conversions."
true
if the result of the query is not empty; false
if the result is empty or the query raises a dynamic error
This example parses and binds the input XML string to the initial context item of the query x/y
:
Hive> SELECT xml_exists("x/y", "<x><y>123</y></x>") FROM src LIMIT 1;
.
.
.
true
This example defines two query variables, $data
and $value
:
Hive> SELECT xml_exists( "parse-xml($data)/x/y[@id = $value]", struct( "data", "<x><y id='1'/><y id='2'/></x>", "value", 2 ) ) FROM src LIMIT 1; . . . true
In this example, an error is written to the log, because the input XML is invalid:
hive> SELECT xml_exists("x/y", "<x><y>123</invalid></x>") FROM src LIMIT 1;
.
.
.
false