我已经简要地学习了如何使用RDD来构建ML模型,但在过去我通常使用数据帧构建我的ML模型。我知道spark.ml是用于火花机学习的DataFrame API,但我无法找到如何利用它的示例。
我的问题是,您是否可以提供一个如何使用Dataframe来构建火花机器学习模型的示例?
P.S。对不起,如果这个问题不合适,不知道在哪里发帖。
答案 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
希望这会有所帮助。