PYSPARK 学习库

一、pyspark 机器学习库ml

1、ML 和 MLlib的区别

  •       ml 目前处于维护状态(只修复bug而不增加新功能),并且以后会支持ml ,MLlib 在spark3.0中可能会被废弃(学习spark的小伙伴直接用ml库就好)
  •       ml库基于DataFrame,MLlib基于RDD 。DataFrame是抽象在rdd之上的,其耦合度低,抽象级别更高;
  •       ml中提出了管道的概念,这个和scikit-learn一样,可以将特征清洗,模型训练,结果输出整合在一起,方便操作;
  •      ml中算法的训练和预测等都和scikit-learn中比较类似,比如fit 表模型训练,predict表预测,fit_transform等,MLlib不同的模型,训练、预测的方法都不一样!

      总之,已经熟练使用scikit-learn的小伙伴,可以无缝切换到ml中;

2、ml 中的子库

     2.1  pyspark.ml.param 

                目前介绍比较少,用到了在做详细介绍。

    2.2  pyspark.feature

                这个模块相当重要,进行主要的特征工程!

               1、 二值化

                     通过设置 threshold 来将连续值分成两类,比如label是连续值,但是要进行二分类,就可以使用二值化来实现;

                      pyspark.ml.feature.Binarizer

           spark 实例:

           

data = ss.table('rs.rs_us_home_goods_v1').where("dt='20190116'")
binarizer = Binarizer(threshold=50, inputCol='score', outputCol='score1')
result = binarizer.transform(data)
result.show(5)

       PYSPARK 学习库_第1张图片       

           其中还有几种设置参数和获取参数的方法:

           

binarizer.setParams(outputCol='freq')
result1 = binarizer.transform(data).head().freq

binarizer.getThreshold()

params = {binarizer.threshold: -0.5, binarizer.outputCol: "out"}
result1 = binarizer.transform(data, params)

PYSPARK 学习库_第2张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

             

    2.3     

   2.4

   2.5  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      

你可能感兴趣的:(spark)