Script com Python for Spark
SPSS Modeler pode executar scripts do Python usando a estrutura Apache Spark para processar dados. Esta documentação fornece a descrição da API do Python para as interfaces fornecidas.
A instalação do SPSS Modeler inclui uma distribuição Spark.
Acessar dados
inputData = asContext.getSparkInputData()asContext.setSparkOutputData(outputData)outputData = sqlContext.createDataFrame(rdd)Definindo o modelo de dados
Um nó que produz dados também deve definir um modelo de dados que descreve os campos visíveis de recebimento de dados do nó. Na terminologia do Spark SQL, o modelo de dados é o esquema.
Um script Python/Spark define seu modelo de dados de saída na forma de um objeto pyspsark.sql.types.StructType. Um StructType descreve uma linha no quadro de dados de saída e é construído a partir de uma lista de objetos StructField. Cada StructField descreve um único campo no modelo de dados de saída.
:schema do quadro de dados de entrada:inputSchema = inputData.schemaStructField:field = StructField(name, dataType, nullable=True, metadata=None)Consulte a documentação do Spark para obter informações sobre o construtor.
Deve-se fornecer pelo menos o nome do campo e seu tipo de dados. Opcionalmente, você pode especificar metadados para fornecer uma medida, função e descrição para o campo (veja Metadados de dados).
Modo DataModelOnly
SPSS Modeler precisa conhecer o modelo de dados de saída para um nó, antes que o nó seja executado, para ativar a edição downstream. Para obter o modelo de dados de saída para um nó Python/Spark, o SPSS Modeler executa o script em um modo especial somente modelo de dados em que não há dados disponíveis. O script pode identificar esse modo usando o método isComputeDataModelOnly no objeto de contexto do Analytic Server.
if asContext.isComputeDataModelOnly():
inputSchema = asContext.getSparkInputSchema()
outputSchema = ... # construct the output data model
asContext.setSparkOutputSchema(outputSchema)
else:
inputData = asContext.getSparkInputData()
outputData = ... # construct the output data frame
asContext.setSparkOutputData(outputData)Construindo um modelo
Um nó que constrói um modelo deve retornar ao contexto de execução algum conteúdo que descreve o modelo suficientemente para que o nó que aplica o modelo possa recriá-lo exatamente em um momento posterior.
O conteúdo do modelo é definido em termos de pares chave / valor onde o significado das chaves e os valores são conhecidos apenas para nós de construção e pontuação e não é interpretado por SPSS Modeler de qualquer maneira. Opcionalmente o nó pode atribuir um tipo MIME a um valor com a intenção de que SPSS Modeler possa exibir aqueles valores que possuem tipos conhecidos para o usuário no nugget de modelo.
asContext.setModelContentFromString(key, value, mimeType=None)value = asContext.getModelContentToString(key)asContext.setModelContentFromPath(key, path)Observe que, neste caso, não há opção para especificar um tipo MIME porque o pacote configurável pode conter vários tipos de conteúdo.
path = asContext.createTemporaryFolder()path = asContext.getModelContentToPath(key)Manipulação de erros
spss.pyspark.exceptions. Por exemplo:from spss.pyspark.exceptions import ASContextException
if ... some error condition ...:
raise ASContextException("message to display to user")