繁体   English   中英

从pyspark.ml.pipeline中的管道对象检索转换后的数据集

[英]Retrieving transformed dataset from pipeline object in pyspark.ml.pipeline

我是Spark ML的新手。 我试图利用Spark ML管道来链接数据转换(将其视为ETL流程)。 换句话说,我想输入一个DataFrame,进行一系列转换(每次向该数据帧添加一列)并输出转换后的DataFrame。

我一直在研究Python中管道的文档和代码,但没有得到如何从管道中获取转换后的数据集的方法。 请参见以下示例(从文档中复制并修改):

from pyspark.ml import Pipeline
from pyspark.ml.feature import HashingTF, Tokenizer

# Prepare training documents from a list of (id, text, label) tuples.
training = spark.createDataFrame([
   (0, "a b c d e spark", 1.0),
   (1, "b d", 0.0),
   (2, "spark f g h", 1.0),
   (3, "hadoop mapreduce", 0.0)
    ], ["id", "text", "label"])

 # Configure an ML pipeline, which consists of two stages: tokenizer, 
 hashingTF.
 tokenizer = Tokenizer(inputCol="text", outputCol="words")
 hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), 
 outputCol="features")
 pipeline = Pipeline(stages=[tokenizer, hashingTF])

 training.show()
 pipeline.fit(training)

如何从“管道”对象中获取转换后的数据集(即在执行分词器和哈希处理后的数据集)?

你不能。 而是保留模型

model = pipeline.fit(training)

并使用它来transform数据:

training_transformed = model.transform(training)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM