文章目录
原文:Apache Spark SQL --- Xml Functions
本分类按照 Spark SQL 官方目录函数顺序整理,共 12 个函数。
1、from_xml
语法
sql
from_xml(xmlStr, schema[, options])
说明
按照指定 Schema 解析 XML 字符串,返回 STRUCT 值。
示例
sql
> SELECT from_xml('<p><a>1</a><b>0.8</b></p>', 'a INT, b DOUBLE');
{"a":1,"b":0.8}
引入版本: 4.0.0
2、schema_of_xml
语法
sql
schema_of_xml(xml[, options])
说明
推断 XML 字符串的 Schema,以 DDL 格式返回。
示例
sql
> SELECT schema_of_xml('<p><a>1</a></p>');
STRUCT<a: BIGINT>
引入版本: 4.0.0
3、to_xml
语法
sql
to_xml(expr[, options])
说明
将 STRUCT 值转换为 XML 字符串。
示例
sql
> SELECT to_xml(named_struct('a', 1, 'b', 2));
<ROW><a>1</a><b>2</b></ROW>
引入版本: 4.0.0
4、xpath
语法
sql
xpath(xml, xpath)
说明
返回 XML 中满足 XPath 表达式的节点值组成的字符串数组。
示例
sql
> SELECT xpath('<a><b>b1</b><b>b2</b><b>b3</b><c>c1</c><c>c2</c></a>','a/b/text()');
["b1","b2","b3"]
引入版本: 2.0.0
5、xpath_boolean
语法
sql
xpath_boolean(xml, xpath)
说明
XPath 表达式求值为 TRUE 或找到匹配节点时返回 TRUE。
示例
sql
> SELECT xpath_boolean('<a><b>1</b></a>','a/b');
true
引入版本: 2.0.0
6、xpath_double
语法
sql
xpath_double(xml, xpath)
说明
计算 XPath 并返回 DOUBLE,未匹配时返回 0,匹配值非数字时返回 NaN。
示例
sql
> SELECT xpath_double('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3.0
引入版本: 2.0.0
7、xpath_float
语法
sql
xpath_float(xml, xpath)
说明
计算 XPath 并返回 FLOAT,未匹配时返回 0,匹配值非数字时返回 NaN。
示例
sql
> SELECT xpath_float('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3.0
引入版本: 2.0.0
8、xpath_int
语法
sql
xpath_int(xml, xpath)
说明
计算 XPath 并返回 INT,未匹配或匹配值非数字时返回 0。
示例
sql
> SELECT xpath_int('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3
引入版本: 2.0.0
9、xpath_long
语法
sql
xpath_long(xml, xpath)
说明
计算 XPath 并返回长整数,未匹配或匹配值非数字时返回 0。
示例
sql
> SELECT xpath_long('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3
引入版本: 2.0.0
10、xpath_number
语法
sql
xpath_number(xml, xpath)
说明
计算 XPath 并返回 DOUBLE,未匹配时为 0,匹配值非数字时为 NaN。
示例
sql
> SELECT xpath_number('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3.0
引入版本: 2.0.0
11、xpath_short
语法
sql
xpath_short(xml, xpath)
说明
计算 XPath 并返回短整数,未匹配或匹配值非数字时返回 0。
示例
sql
> SELECT xpath_short('<a><b>1</b><b>2</b></a>', 'sum(a/b)');
3
引入版本: 2.0.0
12、xpath_string
语法
sql
xpath_string(xml, xpath)
说明
返回与 XPath 表达式匹配的首个 XML 节点的文本内容。
示例
sql
> SELECT xpath_string('<a><b>b</b><c>cc</c></a>','a/c');
cc
引入版本: 2.0.0