BigQuery 中是不是存在用于从东、北转换为纬度、经度的 UDF?
Posted
技术标签:
【中文标题】BigQuery 中是不是存在用于从东、北转换为纬度、经度的 UDF?【英文标题】:Does there exist a UDF to convert from Easting, Northing to latitude, longitude within BigQuery?BigQuery 中是否存在用于从东、北转换为纬度、经度的 UDF? 【发布时间】:2016-10-27 10:57:01 【问题描述】:我使用 BigQuery 中的 BNG 系统获得了大量的东、北点。
通常我将它们读入 r 然后转换(从 CRS("+init=epsg:27700") 到 CRS("+init=epsg:4326"))。
是否可以在 BigQuery 中实际使用 UDF 来执行此操作?
这里有 JS 代码:http://www.movable-type.co.uk/scripts/latlong-os-gridref.html 进行转换。
我将如何真正将其转换为 UDF,特别是然后能够在 bigrquery 中使用 UDF?
谢谢!
【问题讨论】:
【参考方案1】:要在 UDF 中使用此 javascript 代码,您可以:
在GCS 上存储您要使用的 JavaScript 文件的副本。 Enable standard SQL 供您查询。 在查询本身中,使用CREATE TEMP FUNCTION
定义UDF。使用OPTIONS
子句并指定要加载的library
paths。
最终的查询看起来像这样:
CREATE TEMP FUNCTION ConvertCoordinate(input STRING)
RETURNS STRING
LANGUAGE js AS
"""
// Assumes 'jsConvertCoordinate' is defined in one of the library files.
return jsConvertCoordinate(input);
"""
OPTIONS (
library="gs://my-bucket/path/to/lib1.js",
library="gs://my-bucket/path/to/lib2.js"
);
SELECT ConvertCoordinate(coordinate) AS converted_coordinate
FROM MyTable;
【讨论】:
以上是关于BigQuery 中是不是存在用于从东、北转换为纬度、经度的 UDF?的主要内容,如果未能解决你的问题,请参考以下文章
在插入 BigQuery 表之前检查数据是不是已经存在(使用 Python)
BigQuery - 将通用 JSON 转换为 STRUCT