Translation not up to date
Program SPSS Modeler może uruchamiać skrypty Python , korzystając z środowiska Apache Spark w celu przetwarzania danych. W niniejszej dokumentacji przedstawiono opisy interfejsu API środowiska Python w zakresie udostępnionych interfejsów.
Instalacja programu SPSS Modeler obejmuje dystrybucję Spark.
Uzyskiwanie dostępu do danych
inputData = asContext.getSparkInputData()
asContext.setSparkOutputData(outputData)
outputData = sqlContext.createDataFrame(rdd)
Definiowanie modelu danych
Węzeł, który generuje dane, musi także zdefiniować model danych opisujący zmienne widoczne za węzłem. W terminologii środowiska Spark SQL model danych jest schematem.
Skrypt Python/Spark definiuje model danych wyjściowych w postaci obiektu
pyspsark.sql.types.StructType
. Obiekt StructType
opisuje wiersz w ramce danych wyjściowych i składa się z listy obiektów StructField
. Każdy obiekt StructField
opisuje jedna zmienną w modelu danych wyjściowych.
:schema
ramki danych wejściowych:inputSchema = inputData.schema
StructField
:field = StructField(name, dataType, nullable=True, metadata=None)
Informacje o konstruktorze zawiera dokumentacja środowiska Spark.
Należy podać nazwę i typ danych co najmniej jednej zmiennej. Opcjonalnie można określić metadane w celu udostępnienia miary, roli i opisu dla pola (patrz sekcja Metadane danych).
Tryb DataModelOnly
Program SPSS Modeler musi znać model danych wyjściowych dla węzła, zanim węzeł zostanie uruchomiony, aby umożliwić jego edytowanie. Aby uzyskać wyjściowy model danych dla węzła Python/Spark, program SPSS Modeler uruchamia skrypt w specjalnym trybie tylko model danych , w którym nie ma dostępnych danych. Skrypt może wykryć, że działa w tym trybie, używając metody
isComputeDataModelOnly
obiektu kontekstu serwera 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)
Budowanie modelu
Węzeł tworzący model musi zwrócić do kontekstu wykonania jakąś treść, która opisuje model na tyle szczegółowo, by węzeł stosujący ten model mógł go później dokładnie odtworzyć.
Treść modelu jest definiowana w postaci par klucz/wartość, w których znaczenie kluczy i wartości jest znane tylko dla węzłów budowania i oceny i nie jest interpretowane przez program SPSS Modeler w żaden sposób. Opcjonalnie węzeł może przypisać typ MIME do wartości z zamiarem, aby program SPSS Modeler mógł wyświetlać te wartości, które mają znane typy do użytkownika w modelu użytkowym.
asContext.setModelContentFromString(key, value, mimeType=None)
value = asContext.getModelContentToString(key)
asContext.setModelContentFromPath(key, path)
Należy zauważyć, że w tym przypadku nie można określić typu MIME, ponieważ pakunek może zawierać treści różnego typu.
path = asContext.createTemporaryFolder()
path = asContext.getModelContentToPath(key)
Obsługa błędów
spss.pyspark.exceptions
. Na przykład:from spss.pyspark.exceptions import ASContextException
if ... some error condition ...:
raise ASContextException("message to display to user")