Parâmetros
Os parâmetros fornecem uma maneira útil de transmitir valores no tempo de execução ao invés
de codificá-los permanentemente direto em um script. Os parâmetros e seus valores são definidos da mesma forma que para os fluxos; ou seja, como entradas na tabela de parâmetros de um fluxo ou como parâmetros na linha de comandos. A classe Stream implementa um conjunto de funções definidas pelo objeto ParameterProvider conforme mostrado na tabela a seguir. Session fornece uma chamada getParameters() que retorna um objeto que define essas funções.
| Método | Retorne o tipo | Descrição |
|---|---|---|
p.parameterIterator() |
Agente iterativo | Retorna um agente iterativo de nomes de parâmetro para este objeto. |
p.getParameterDefinition( parameterName) |
ParameterDefinition |
Retorna a definição de parâmetro para o parâmetro com o nome especificado ou None se nenhum parâmetro desse tipo existir nesse provedor. O resultado poderá ser uma captura instantânea da definição no momento em que o método foi chamado e não precisará refletir nenhuma modificação subsequente feita no parâmetro por meio deste provedor. |
p.getParameterLabel(parameterName) |
string | Retorna o rótulo do parâmetro nomeado ou None se não existir tal parâmetro. |
p.setParameterLabel(parameterName, label) |
Não Aplicável | Configura o rótulo do parâmetro nomeado. |
p.getParameterStorage( parameterName) |
ParameterStorage |
Retorna o armazenamento do parâmetro nomeado ou None se não existir tal parâmetro. |
p.setParameterStorage( parameterName, storage) |
Não Aplicável | Configura o armazenamento do parâmetro nomeado. |
p.getParameterType(parameterName) |
ParameterType |
Retorna o tipo do parâmetro nomeado ou None se não existir tal parâmetro. |
p.setParameterType(parameterName, type) |
Não Aplicável | Define o tipo do parâmetro nomeado. |
p.getParameterValue(parameterName) |
Objeto | Retorna o valor do parâmetro nomeado ou None se não existir tal parâmetro. |
p.setParameterValue(parameterName, value) |
Não Aplicável | Configura o valor do parâmetro nomeado. |
No exemplo a seguir, o script agrega alguns dados do Telco para localizar qual região possui os dados da receita média mais baixa. Um parâmetro de fluxo é configurado com essa região. Esse parâmetro de fluxo é usado em um nó Selecionar para excluir essa região dos dados, antes que um modelo de rotatividade seja construído sobre o restante.
O exemplo é artificial porque o script gera o nó Selecionar nó em si e, portanto, pode ter gerado o valor correto diretamente na expressão do nó Selecionar. No entanto, os fluxos são tipicamente pré-construídos, portanto, definir parâmetros desta forma fornece um exemplo útil.
A primeira parte deste script de exemplo cria o parâmetro de fluxo que contará com a região com a menor renda média. O script também cria os nós na ramificação de agregação e na ramificação de construção de modelo e os conecta entre si.
import modeler.api
stream = modeler.script.stream()
# Initialize a flow parameter
stream.setParameterStorage("LowestRegion", modeler.api.ParameterStorage.INTEGER)
# First create the aggregation branch to compute the average income per region
sourcenode = stream.findByID("idGXVBG5FBZH")
aggregatenode = modeler.script.stream().createAt("aggregate", "Aggregate", 294, 142)
aggregatenode.setPropertyValue("keys", ["region"])
aggregatenode.setKeyedPropertyValue("aggregates", "income", ["Mean"])
tablenode = modeler.script.stream().createAt("table", "Table", 462, 142)
stream.link(sourcenode, aggregatenode)
stream.link(aggregatenode, tablenode)
selectnode = stream.createAt("select", "Select", 210, 232)
selectnode.setPropertyValue("mode", "Discard")
# Reference the flow parameter in the selection
selectnode.setPropertyValue("condition", "'region' = '$P-LowestRegion'")
typenode = stream.createAt("type", "Type", 366, 232)
typenode.setKeyedPropertyValue("direction", "Drug", "Target")
c50node = stream.createAt("c50", "C5.0", 534, 232)
stream.link(sourcenode, selectnode)
stream.link(selectnode, typenode)
stream.link(typenode, c50node)
O script de exemplo cria o fluxo a seguir.
