Custom functions provide advanced means of manipulating data. Users can upload custom functions written in Python to MindsDB and apply them to data.

How It Works

You can upload your custom functions via the MindsDB editor by clicking Add and Upload custom functions, like this:

Here is the form that needs to be filled out in order to bring your custom functions to MindsDB:

Let’s briefly go over the files that need to be uploaded:

  • The Python file stores an implementation of your custom functions. Here is the sample format:

    def function_name_1(a:type, b:type) -> type:
        <implementation goes here>
        return x
    
    def function_name_2(a:type, b:type, c:type) -> type:
        <implementation goes here>
        return x
    

    Note that if the input and output types are not set, then str is used by default.

  • The optional requirements file, or requirements.txt, stores all dependencies along with their versions. Here is the sample format:

    dependency_package_1 == version
    dependency_package_2 >= version
    dependency_package_3 >= verion, < version
    ...
    

Once you upload the above files, please provide the name for a storage collection.

Let’s look at an example.

Example

We upload the custom functions, as below:

Here we upload the functions.py file that stores an implementation of the functions and the requirements.txt file that stores all the dependencies. We named the storage collection as custom_functions.

Now we can use the functions as below:

SELECT functions.add_integers(sqft, 1) AS added_one, sqft
FROM example_db.home_rentals
LIMIT 1;

Here is the output:

+-----------+------+
| added_one | sqft |
+-----------+------+
| 918       | 917  |
+-----------+------+