我已经在pyspark2.1中训练了RandomForest,但是另存为pyspark模型文件。
rf_model = RandomForestClassifier(featuresCol='features',
labelCol='click',
maxDepth=10,
maxBins=32,
numTrees=100,
)
model = rf_model.fit(dftrain)
model_path = 'hdfs://hacluster/user/model'
model.save(model_path)
但是,现在,我们下载了没有dftrain数据的模型,并且现在无法访问hdfs。没有确切的训练数据,有什么方法可以将模型文件转换为pmml?
我已经知道pyspark2pmml或jpmml-sparkml都将火车数据作为输入。
from jpmml_sparkml import toPMMLBytes
pmmlBytes = toPMMLBytes(sc, dftrain, pipelineModel)
print(pmmlBytes)
答案 0 :(得分:0)
我已经知道pyspark2pmml或jpmml-sparkml,它们都有训练数据作为输入。
JPMML-SparkML库(直接或通过PySpark2PMML包装器库)仍然是您唯一的选择。但是,您应该检出其README文件以刷新有关该文件的知识-您的示例使用了过时的API(pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
result=sh(script:'ls -al', returnStdout: true)
}
}
}
}
实用程序方法而非org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 8: Expected a step @ line 8, column 13.
result=sh(script:'ls -al', returnStdout: true)
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:129)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:123)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:517)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:480)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:268)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
构建器方法)。
关于训练数据集的需求,那么JPMML-SparkML需要知道训练数据集的模式(以node {
stage("Fetch code from git") {
echo 'Hello World'
result = sh(script:'ls -al', returnStdout: true)
echo result
}
}
对象的形式),而不是实际的数据。此架构用于获取列名,数据类型和其他元数据。
如果没有可用的原始架构,那么以编程方式创建一个架构就不难了。