0 / 0
Volver a la versión inglesa de la documentación
Nodos de recorrido en bucle
Última actualización: 04 oct 2024
Nodos de recorrido en bucle

Puede utilizar un bucle for para realizar un bucle a través de todos los nodos de un flujo. Por ejemplo, los dos ejemplos de script siguientes pasan por todos los nodos y cambian los nombres de campo en cualquier nodo Filtrar a mayúsculas.

Puede utilizar este script en cualquier flujo que contenga un nodo Filtrar, incluso si no hay campos filtrados realmente. Simplemente añada un nodo Filtrar que pase todos los campos para cambiar los nombres de campo a mayúsculas en todos los campos.

# Alternative 1: using the data model nameIterator() function
stream = modeler.script.stream()
for node in stream.iterator():
    if (node.getTypeName() == "filter"):
        # nameIterator() returns the field names
        for field in node.getInputDataModel().nameIterator():
            newname = field.upper()
            node.setKeyedPropertyValue("new_name", field, newname)
# Alternative 2: using the data model iterator() function
stream = modeler.script.stream()
for node in stream.iterator():
    if (node.getTypeName() == "filter"):
        # iterator() returns the field objects so we need
        # to call getColumnName() to get the name
        for field in node.getInputDataModel().iterator():
            newname = field.getColumnName().upper()
            node.setKeyedPropertyValue("new_name", field.getColumnName(), newname)

El script realiza un bucle a través de todos los nodos del flujo actual y comprueba si cada nodo es un filtro. Si es así, el script pasa por cada campo del nodo y utiliza la función field.upper() o field.getColumnName().upper() para cambiar el nombre a mayúsculas.

Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información