【问题标题】:SPSS modeler Extension Transform - PythonSPSS 建模器扩展变换 - Python
【发布时间】:2018-11-19 10:15:57
【问题描述】:

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

虚拟数据按执行创建。 (见底部) 我尝试使用我在 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 - 没有收到记录

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

整个设置如下所示

【问题讨论】:

    标签: python spss-modeler


    【解决方案1】:

    我想发表评论,但没有足够的声誉,所以我必须使用答案来提问。

    您是否使用了正确的语法选项卡?

    因为当我这样使用它时,我会得到我期望的输出。


    此代码应该只返回您的数据框并将“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)
    

    【讨论】:

    • 是的,我正在使用它。我在我的本地计算机上运行整个,没有服务器。
    • 我不确定,如果整个设置不正确。如果我只是输入一个打印“测试”,那么它会给出同样的错误。
    • 嗨@Laca,您的设置应该可以工作,因为我使用的是相同的。您能否附加扩展转换节点内部的屏幕截图(仅限语法选项卡)?您也可以尝试我在答案中编辑的代码吗?这应该返回输入数据帧并将“Hello World”打印到控制台输出选项卡。
    • 嗨帕纳达约!感谢您的反馈意见。我将整个设置添加到原始问题中。
    • 我也试过Hello world的例子,但还是一样的错误。
    【解决方案2】:

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

    Ref from IBM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2015-11-24
      相关资源
      最近更新 更多