Spark için Python ile komut dosyası oluşturma
SPSS Modeler , verileri işlemek için Apache Spark çerçevesini kullanarak Python komut dosyalarını çalıştırabilir. Bu belge, sağlanan arabirimler için Python API açıklamasını sağlar.
SPSS Modeler kuruluşu bir Spark dağıtımı içerir.
verilere erişme
inputData = asContext.getSparkInputData()asContext.setSparkOutputData(outputData)outputData = sqlContext.createDataFrame(rdd)Veri modelini tanımlama
Veri üreten bir düğüm, düğümün aşağı akışında görünen alanları tanımlayan bir veri modeli de tanımlamalıdır. Spark SQL terminolojisinde, veri modeli şemasıdır.
Python/Spark komut dosyası, çıkış veri modelini pyspsark.sql.types.StructType nesnesi biçiminde tanımlar. StructType , çıkış verileri çerçevesindeki bir satırı tanımlar ve StructField nesneleri listesinden oluşturulur. Her StructField , çıkış veri modelinde tek bir alanı açıklar.
:schema özniteliğini kullanarak giriş verileri için veri modelini elde edebilirsiniz:inputSchema = inputData.schemaStructField oluşturucusu kullanılarak yaratılabilir:field = StructField(name, dataType, nullable=True, metadata=None)Oluşturucuyla ilgili bilgi için Spark belgelerinize bakın.
En azından alan adını ve veri tipini sağlamalısınız. İsteğe bağlı olarak, alan için bir ölçü, rol ve açıklama sağlamak üzere meta veri belirtebilirsiniz (bkz. Veri meta verileri).
DataModelYalnızca kip
SPSS Modeler ' in aşağı akımlı düzenlemeyi etkinleştirmek için düğüm çalışmadan önce bir düğüme ilişkin çıkış veri modelini bilmesi gerekir. Bir Python/Spark düğümüne ilişkin çıkış veri modelini edinmek için, SPSS Modeler komut dosyasını yalnızca özel bir veri modeli kipinde çalıştırır; burada kullanılabilecek veri yoktur. Komut dosyası, Analytic Server bağlam nesnesindeki isComputeDataModelOnly yöntemini kullanarak bu kipi tanımlayabilir.
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)Model oluşturma
Model oluşturan bir düğümün, modeli uygulayan düğümün daha sonra tam olarak yeniden yaratabileceği şekilde modeli yeterince tanımlayan içerik yürütme bağlamına dönmesi gerekir.
Model içeriği, anahtarların ve değerlerin yalnızca oluşturma ve puan düğümleri tarafından bilindiği ve SPSS Modeler tarafından herhangi bir şekilde yorumlanmadığı anahtar/değer çiftleri cinsinden tanımlanır. İsteğe bağlı olarak düğüm, SPSS Modeler ' in model nugget içindeki kullanıcı tarafından bilinen tiplere sahip olan değerleri görüntüleyebilmesi amacıyla bir MIME tipini bir değere atayabilir.
asContext.setModelContentFromString(key, value, mimeType=None)value = asContext.getModelContentToString(key)asContext.setModelContentFromPath(key, path)Bu durumda, kod paketi çeşitli içerik tipleri içerebileceği için MIME tipi belirtilmesi seçeneği yoktur.
path = asContext.createTemporaryFolder()path = asContext.getModelContentToPath(key)Hata İşlemleri
spss.pyspark.exceptionsmodülünde önceden tanımlanmıştır. Örneğin:from spss.pyspark.exceptions import ASContextException
if ... some error condition ...:
raise ASContextException("message to display to user")