有没有办法在 BigQuery Standard SQL 中解析 XML 标签?

Posted

技术标签:

【中文标题】有没有办法在 BigQuery Standard SQL 中解析 XML 标签?【英文标题】:Is there a way to parse XML tags in BigQuery Standard SQL? 【发布时间】:2018-02-23 18:25:17 【问题描述】:

我读到它是bad idea to parse XML/html using regular expressions。另一种建议是使用 XML 解析器。 BigQuery 标准 SQL 库中是否存在一个?

【问题讨论】:

你可以使用 javascript UDF 吗?您可能可以使用 JavaScript 解析 XML。 @ElliottBrossard 你能再解释一下吗?如果您认为使用 JavaScript UDF 很有用,您能否发布如何使用它作为答案?谢谢。 本文档可能会有所帮助:cloud.google.com/bigquery/docs/reference/standard-sql/… 谢谢。这很有帮助 【参考方案1】:

这里是有关如何在 BigQuery 中使用 Javascript UDF 的文档,就像 Elliot 提到的那样。

https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions

我想 UDF 可能看起来像

CREATE TEMPORARY FUNCTION XML(x STRING)
RETURNS STRING
  LANGUAGE js AS """
  var data = fromXML(x);
  return data.title;
"""
OPTIONS(
library="gs://<BUCKET_NAME>/from-xml.min.js"
);
SELECT XML(a) FROM UNNEST(["<title>Title of Page</title>"]) as a

from-xml.min.js 来自this 库并加载到您的 gcs 帐户中

【讨论】:

以上是关于有没有办法在 BigQuery Standard SQL 中解析 XML 标签?的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery (Standard Sql) - 年月日期格式

使用外部 UDF 库运行 BigQuery Standard SQL

在BigQuery Standard SQL中的Last Slash之后获取字符串

在 bigquery Standard sql 中按问题分组,并且无法获取唯一记录

Bigquery Standard Sql 等效于 Legacy Sql 中的 LAST()

PARSE_DATE : 解析函数 BigQuery/Standard SQL 的结果无效