Funções do Python no Alteryx
Importante
As funções abaixo estão disponíveis como parte do pacote Alteryx quando você executa from ayx import Alteryx. As funções permitem que você passe dados entre o Alteryx e o Jupyter.
Ler dados
Alteryx.read("<input connection name>"): retorna os dados de entrada como um pandas DataFrame. As âncoras de entrada são baseadas em 1: "#1", "#2" etc.
Exemplos
df = Alteryx.read("#1") retorna SUCCESS: lendo dados de entrada "#1".
Ler metadados
Alteryx.readMetadata("<input connection name>" or <pandas dataframe>): retorna os metadados do campo de entrada como um dict (dicionário). As âncoras de entrada são baseadas em 1: "#1", "#2" etc.
Exemplos
md = Alteryx.readMetadata("#1"); print(md);retorna {'Field1': {'type': 'Byte', 'length': 1, 'source': 'TextInput:', 'description': ''}}.md = Alteryx.readMetadata(df); print(md);retorna {'Field1': {'type': 'Byte', 'length': 1, 'source': '', 'description': ''}}.
Gravar dados
Alteryx.write(<pandas dataframe>, <output anchor number>, [metadata list or dict]): passa o quadro de dados completo para o Alteryx quando o fluxo de trabalho é executado. Opcionalmente, você pode passar metadados como uma lista (usando a ordem das colunas) ou como dict (usando o nomes das colunas). As âncoras de saída são baseadas em 1: "#1", "#2" etc.
Utilize Alteryx.write para gerar a saída de dados da ferramenta Phyton. Para enviar dados para outras ferramentas na tela, use o método como:
# 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)
O método Alteryx.write só aceita quadros de dados do pandas. Se seus dados estiverem em outro formato, utilize a biblioteca do pandas para convertê-los em um quadro de dados. A biblioteca do pandas vem pré-instalada com o Designer. Acesse-a por meio da execução import pandas.
É possível enviar até cinco quadros de dados às âncoras de saída.
Exemplos
Alteryx.write(df, 1)retorna SUCCESS: gravando dados de conexão de saída 1.Alteryx.write(df, 2, Alteryx.readMetadata("#1"))retorna SUCCESS: gravando dados de conexão de saída 2.Alteryx.write(df, 3, {'Field1': {'name': 'Field1_as_double', 'type': 'Double'}})retorna SUCCESS: gravando dados de conexão de saída 3.Alteryx.write(df, 4, [{'name': 'Field1_as_string', 'type': 'V_String', 'length': 8}])retorna SUCCESS: gravando dados de conexão de saída 4.
Listar conexões de entrada
Alteryx.getIncomingConnectionNames( ): retorna uma lista que contém todas as conexões de dados de entrada. Se as conexões parecerem fora de sincronia, execute novamente o fluxo de trabalho do Alteryx.
Exemplos
Alteryx.getIncomingConnectionNames() retorna ["#1", "#2", "model"].
Instalar pacotes
Alteryx.installPackages("<package name or list of package names>"): instala pacotes do PyPI. É necessária uma conexão com a Internet. Além disso, se estiver usando uma instalação de administrador do Alteryx, o Alteryx deve ser aberto no modo de administrador para instalar pacotes. As instalações de não administrador não têm essa restrição.
Exemplos
Alteryx.installPackages("tensorflow")Alteryx.installPackages(["keras","theano","gensim"])
Constantes de fluxo de trabalho
Obter a constante de fluxo de trabalho
Alteryx.getWorkflowConstant("<constant name>"): retorna o valor de uma constante do fluxo de trabalho do Alteryx (você pode acessá-los na guia Fluxo de trabalho em "Configuração do fluxo de trabalho" no Designer).
Importante
Evite utilizar wrappers % em constantes de fluxo de trabalho. Em vez disso, por exemplo, use isto para chamar Engine.WorkflowDirectory:
from ayx import Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")Exemplos
Alteryx.getWorkflowConstant("Engine.TempFilePath") retorna "C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\".
Obter todas as constantes
Alteryx.getWorkflowConstants( ): retorna o valor de todas as constantes do fluxo de trabalho do Alteryx em um dict.
Exemplos
Alteryx.getWorkflowConstants() retorna:
{
'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 Python
Alteryx.importPythonModule("<path>", [list of submodules]): retorna um objeto de módulo que representa o arquivo Python ou o diretório especificado. Por padrão, se um diretório for fornecido, todos os submódulos serão importados, mas você pode especificar uma lista de submódulos com o argumento de submódulos opcionais.
Exemplos
myscript = Alteryx.importPythonModule("C:\\documents\\my_script.py")myscript.square(3)retorna 9.mypkg = Alteryx.importPythonModule("C:\\documents\\my_package")mypkg.module1.half( mypkg.subpkg.max_value )retorna 4
Os fragmentos de código acima são baseados nos seguintes arquivos e pastas:
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)
