Funciones de Alteryx Python
Importante
Las siguientes funciones están disponibles como parte del paquete de Alteryx cuando se ejecuta from ayx import Alteryx. Las funciones te permiten transferir datos entre Alteryx y Jupyter.
Leer datos
Alteryx.read("<input connection name>"): devuelve los datos de entrada como un DataFrame de pandas. Las anclas de entrada se basan en 1: "#1", "#2", etc.
Ejemplos
df = Alteryx.read("#1") returns SUCCESS: reading input data "#1".
Leer metadatos
Alteryx.readMetadata("<input connection name>" or <pandas dataframe>): devuelve los metadatos del campo de entrada como un dict. Las anclas de entrada se basan en 1: "#1", "#2", etc.
Ejemplos
md = Alteryx.readMetadata("#1"); print(md);returns {'Field1': {'type': 'Byte', 'length': 1, 'source': 'TextInput:', 'description': ''}}.md = Alteryx.readMetadata(df); print(md);returns {'Field1': {'type': 'Byte', 'length': 1, 'source': '', 'description': ''}}.
Escribir datos
Alteryx.write(<pandas dataframe>, <output anchor number>, [metadata list or dict]): transfiere el dataframe completo a Alteryx cuando se ejecuta el flujo de trabajo. Puedes transmitir los metadatos de forma opcional, ya sea como una lista (utilizando el orden de columnas) o como un dict (utilizando nombres de columnas). Las anclas de salida se basan en 1: "#1", "#2", etc.
Usa Alteryx.write para generar datos de la herramienta Python. Para enviar datos a otras herramientas en el lienzo, utiliza el método así:
# Replace "PANDAS_DF" with your data, in DataFrame form. # Replace "OUTPUT_ANCHOR_NUM" with the number of your output anchor. Alteryx.write(PANDAS_DATAFRAME, OUTPUT_ANCHOR_NUM)
El método Alteryx.writesolo acepta Pandas DataFrames. Si tienes datos en otro formato, utiliza la biblioteca de Pandas para convertirlos a un DataFrame. La biblioteca de Pandas ya está instalada con Designer. Accede a ella a través de import pandas.
Puedes enviar hasta cinco DataFrames a los anclajes de salida.
Ejemplos
Alteryx.write(df, 1)returns SUCCESS: writing outgoing connection data 1.Alteryx.write(df, 2, Alteryx.readMetadata("#1"))returns SUCCESS: writing outgoing connection data 2.Alteryx.write(df, 3, {'Field1': {'name': 'Field1_as_double', 'type': 'Double'}})returns SUCCESS: writing outgoing connection data 3.Alteryx.write(df, 4, [{'name': 'Field1_as_string', 'type': 'V_String', 'length': 8}])returns SUCCESS: writing outgoing connection data 4.
Enumerar conexiones entrantes
Alteryx.getIncomingConnectionNames( ): devuelve una lista que contiene todas las conexiones de datos entrantes. Si las conexiones no parecen sincronizadas, vuelve a ejecutar el flujo de trabajo de Alteryx.
Ejemplos
Alteryx.getIncomingConnectionNames() returns ["#1", "#2", "model"].
Instalar paquetes
Alteryx.installPackages("<package name or list of package names>"): instala paquetes de PyPI. Se requiere una conexión a Internet. Además, si se utiliza una instalación de administrador de Alteryx, se debe abrir Alteryx en modo de administrador para instalar paquetes. Las instalaciones de no administrador no tienen esta restricción.
Ejemplos
Alteryx.installPackages("tensorflow")Alteryx.installPackages(["keras","theano","gensim"])
Constantes de flujo de trabajo
Obtener constante de flujo de trabajo
Alteryx.getWorkflowConstant("<constant name>"): devuelve el valor de una constante de flujo de trabajo de Alteryx (puedes acceder a estas en la pestaña Flujo de trabajo de la Configuración del flujo de trabajo en Designer).
Importante
Evite usar contenedores de % en constantes del flujo de trabajo. En su lugar, por ejemplo, utilice esto para llamar a Engine.WorkflowDirectory:
from ayx import Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")Ejemplos
Alteryx.getWorkflowConstant("Engine.TempFilePath") returns 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\'.
Obtener todas las constantes
Alteryx.getWorkflowConstants( ): devuelve el valor de todas las constantes de flujo de trabajo de Alteryx en un dict.
Ejemplos
Alteryx.getWorkflowConstants() returns:
{
'Engine.GuiInteraction': '1',
'Engine.IterationNumber': 0,
'Engine.ModuleDirectory': 'C:\my_workflows\',
'Engine.TempFilePath': 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\',
'Engine.Version': '2018.3.0.9999',
'Engine.WorkflowDirectory': 'C:\my_workflows\',
'Engine.WorkflowFileName': 'my_workflow.yxmd'
}Importar módulos de Python
Alteryx.importPythonModule("<path>", [list of submodules]): devuelve un objeto de módulo que representa el archivo o directorio de Python especificado. De forma predeterminada, si se proporciona un directorio, se importan todos los submódulos, pero puedes especificar una lista de submódulos con el argumento de submódulos opcional.
Ejemplos
myscript = Alteryx.importPythonModule("C:\\documents\\my_script.py")myscript.square(3)returns 9.mypkg = Alteryx.importPythonModule("C:\\documents\\my_package")mypkg.module1.half( mypkg.subpkg.max_value )returns 4
Los fragmentos de código anteriores se basan en los siguientes archivos y carpetas:
C:\documents C:\documents\my_script.py ^^^ (contains a function square() that returns the input value squared) C:\documents\my_package C:\documents\my_package\__init__.py C:\documents\my_package\module1.py ^^^ (contains a function half() that returns half of the input value) C:\documents\my_package\subpkg C:\documents\my_package\subpkg\__init__.py ^^^ (contains a variable max_value = 8)
