Properties2
TypePractice
Note createdApr 1, 2025

Private Preview

This feature is, as of 2025-04-01, on private preview and not available for most organizations.

To deploy UDFs written in Python in BigQuery, by:

  • Defining an appropriate entrypoint in the script,
  • Defining a Python version (I only tested it with 3.11),
  • Defining a packages=[...] option that declares all the dependencies to be installed.
  • Defining the body as a triple-quoted raw string (prefixed with r""")
CREATE OR REPLACE FUNCTION
  `cartodb-on-gcp-datascience.dvicente.PYTHON_MULTIPLY`
(
  x FLOAT64,
  y FLOAT64
)
RETURNS FLOAT64
LANGUAGE python
OPTIONS (
  entry_point='multiply_handler',
  runtime_version='python-3.11'
)
AS r"""
def multiply_handler(x, y):
    return x*y
""";
 
SELECT `cartodb-on-gcp-datascience.dvicente.PYTHON_MULTIPLY`(2, 4) AS test;

Defining the function is very fast, while the actual execution takes long the first time and the stays at ~15 sec.