如何在pyspark机器学习中使用Dataframe?

时间:2017-03-09 01:55:25

标签: python dataframe machine-learning pyspark

我已经简要地学习了如何使用RDD来构建ML模型,但在过去我通常使用数据帧构建我的ML模型。我知道spark.ml是用于火花机学习的DataFrame API,但我无法找到如何利用它的示例。

我的问题是,您是否可以提供一个如何使用Dataframe来构建火花机器学习模型的示例?

P.S。对不起,如果这个问题不合适,不知道在哪里发帖。

1 个答案:

答案 0 :(得分:2)

这是一个简单的例子,我刚才马上就提起了。

import pyspark.ml                as ml
import pyspark.ml.feature        as ft
import pyspark.ml.classification as cl

data = sc.parallelize([
     (1, 'two',  3.4, 0)
    ,(2, 'four', 9.1, 1)
    ,(3, 'one',  2.1, 0)
    ,(4, 'five', 2.6, 0)
]).toDF(['id', 'counter', 'continuous', 'result'])

si  = ft.StringIndexer(inputCol='counter', outputCol='counter_idx')
ohe = ft.OneHotEncoder(inputCol=si.getOutputCol(), outputCol='counter_enc')
va  = ft.VectorAssembler(inputCols=['counter_enc', 'continuous'], outputCol='features')

lr  = cl.LogisticRegression(maxIter=5, featuresCol='features', labelCol='result')

pip = ml.Pipeline(stages=[si, ohe, va, lr])
pip.fit(data).transform(data).select(data.columns+['probability', 'prediction']).show()

您还可以检查Denny's和我的书的笔记本:https://github.com/drabastomek/learningPySpark/blob/master/Chapter06/LearningPySpark_Chapter06.ipynb

希望这会有所帮助。