SPSS Modeler Extension Transform-Python

时间:2018-06-25 17:34:11

标签: python spss-modeler

我是SPSS Modeler的新手。我正在尝试用python在虚拟创建的数据上创建一个简单的数据转换。

Flow

将按预期方式创建伪数据。 (请参阅底部) 我尝试使用在IBM网站

上找到的示例,使用python访问和修改数据。
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个错误: -无法获取数据模型:null -没有收到记录

enter image description here

https://www.ibm.com/support/knowledgecenter/da/SS3RA7_18.0.0/modeler_r_nodes_ddita/clementine/r_pyspark_api_examples.htmldummy data

整个设置如下所示 enter image description here

2 个答案:

答案 0 :(得分:0)

我想发表评论,但信誉不够,所以我不得不使用答案提问。

您是否使用了正确的语法标签? 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)

答案 1 :(得分:0)

您也可以在同一脚本选项卡中尝试使用旧版模式​​。我总是使用旧模式,它的代码类似于Clementine(SPSS Modeler的旧版本)。

Ref from IBM