2016-10-27 5 views
0

У меня есть груз восточных, северных точек, использующих систему BNG в BigQuery.Существует ли UDF для преобразования из Easting, Northing в широту, долготу в BigQuery?

Обычно я считываю их в r, а затем конвертирую (от CRS («+ init = epsg: 27700») к CRS («+ init = epsg: 4326»)).

Возможно ли использовать UDF для этого в BigQuery?

Здесь есть код JS: http://www.movable-type.co.uk/scripts/latlong-os-gridref.html, чтобы сделать преобразование.

Как бы я мог превратить это в UDF, в частности, тогда, когда можно было использовать UDF внутри bigrquery?

Спасибо!

ответ

0

Для того, чтобы использовать этот код JavaScript в UDF, вы можете:

  • Сохраните копию файлов JavaScript, которые вы хотите использовать на GCS.
  • 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;