Используйте js-пакеты в BigQuery UDF - PullRequest
0 голосов
/ 15 ноября 2018

Я пытался создать UDF BigQuery, для которого требуется внешний пакет npm.

CREATE TEMPORARY FUNCTION tempfn(message STRING)
RETURNS STRING 
  LANGUAGE js AS """
  var tesfn = require('js-123');
  return tesfn(message)
""";  
SELECT tempfn("Hello") as test; 

Это выдает ошибку

ReferenceError: require не определен в tempfn (STRING) строка 2, столбцы 15-16

Можно ли использовать эти пакеты?

1 Ответ

0 голосов
/ 15 ноября 2018

Нельзя загружать пакеты npm, используя require из пользовательских функций JavaScript. Однако вы можете загрузить внешние библиотеки из GCS, как указано в документации . Пример, приведенный в документации:

CREATE TEMP FUNCTION myFunc(a FLOAT64, b STRING)
  RETURNS STRING
  LANGUAGE js AS
"""
    // Assumes 'doInterestingStuff' is defined in one of the library files.
    return doInterestingStuff(a, b);
"""
OPTIONS (
  library="gs://my-bucket/path/to/lib1.js",
  library=["gs://my-bucket/path/to/lib2.js", "gs://my-bucket/path/to/lib3.js"]
);

SELECT myFunc(3.14, 'foo');

Здесь предполагается, что у вас есть файлы с этими именами в облачном хранилище, и один из них определяет doInterestingStuff.

...