Преобразователь расширений моделера SPSS - Python - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в SPSS Modeler. Я готов создать простое преобразование данных с помощью Python для фиктивных данных.

Flow

Фиктивные данные создаются как ожидаемые. (см. внизу) Я пытаюсь получить доступ к данным на Python и изменить их, используя пример, который я нашел на сайте IBM

import spss.pyspark.runtime
from pyspark.sql.types import *

cxt = spss.pyspark.runtime.getContext() 

if  cxt.isComputeDataModelOnly():   
        _schema = cxt.getSparkInputSchema()   
        cxt.setSparkOutputSchema(_schema)
else:   
        _structType = cxt.getSparkInputSchema()
        df = cxt.getSparkInputData()   
        _newDF = df.sample(False, 0.01, 1)
        cxt.setSparkOutputData(_newDF)

Когда я пытаюсь нажать на превью, чтобы увидеть результат, я получаю 2 ошибки: - Не удается получить модель данных: ноль - не было получено ни одной записи

enter image description here

(https://www.ibm.com/support/knowledgecenter/da/SS3RA7_18.0.0/modeler_r_nodes_ddita/clementine/r_pyspark_api_examples.html) dummy data

Вся установка выглядит так enter image description here

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы также можете попробовать использовать устаревший режим на той же вкладке скрипта.Я всегда использую устаревший режим и код, который похож на Clementine (старая версия SPSS Modeler).

Ссылка от IBM

0 голосов
/ 26 июня 2018

Я хотел бы прокомментировать, но у меня недостаточно репутации, поэтому я должен спросить, используя ответ.

Используете ли вы правильную вкладку синтаксиса?Extension Transform

Поскольку при таком использовании я получу в качестве результата то, что ожидал.Output data


Этот код должен просто вернуть ваш фрейм данных и вывести «Hello World» во вкладку вывода консоли:

import spss.pyspark.runtime
from pyspark.sql.types import *

cxt = spss.pyspark.runtime.getContext() 

if  cxt.isComputeDataModelOnly():   
        _schema = cxt.getSparkInputSchema()   
        cxt.setSparkOutputSchema(_schema)
else:   
        df = cxt.getSparkInputData()
        print("Hello World")
        cxt.setSparkOutputData(df)
...