zoukankan      html  css  js  c++  java
  • spark的ML和MLLib两个包区别和联系?

    原文链接:https://www.zhihu.com/question/35225203/answer/123986969

    1. 技术角度上,面向的数据集类型不一样:ML的API是面向Dataset的(Dataframe是Dataset的子集,也就是Dataset[Row]), mllib是面对RDD的。Dataset和RDD有啥不一样呢?Dataset的底端是RDD。Dataset对RDD进行了更深一层的优化,比如说有sql语言类似的黑魔法,Dataset支持静态类型分析所以在compile time就能报错,各种combinators(map,foreach等)性能会更好,等等。

    2. 编程过程上,构建机器学习算法的过程不一样:ML提倡使用pipelines,把数据想成水,水从管道的一段流入,从另一端流出:
    大体概念:DataFrame => Pipeline => A new DataFrame
    Pipeline: 是由若干个Transformers和Estimators连起来的数据处理过程
    Transformer:入:DataFrame => 出: Data Frame
    Estimator:入:DataFrame => 出:Transformer
    Mllib就是一些机器学习算法的合集,无组织无纪律,一盘散沙,形态各异,经常不带作业,常年出去罚站。所以Mllib很杂很难写。

    3. 对于开发者来言:如果你只是处理数据,构建机器学习算法来解决工程问题,就别想mllib和rdd了,出活最重要。如果你是Spark的开发者或者拓展者,那你必须配着茴香豆学习mllib和rdd的四种写法啊。不过撸出来一定要符合Spark 2.0的API规范哦。要不然没人用你的程序。

    4. 如说上升到哲学玄学周易的角度上:我觉得Scala一直缺一个对“集”这个概念的有效表达。虽然有一个scala.collection,可是现在的数据量,这货明显不够撸啊。Dataset目前是对“集”这个概念最合理抽象。就像给哑巴一张嘴,可以说出关于数据的很多故事。
  • 相关阅读:
    使用脚本改变树控件的行为 (转)点文本 收..
    (面包屑)SiteMapPath控件简化Web网站导航 (转)
    Web.config详解(转)
    SiteMap(站点地图)示例(转)
    url传递中文的解决方案总结(转)
    INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString(转帖)
    hdu 2708
    hdu 1709
    hdu 1045
    hdu 2714
  • 原文地址:https://www.cnblogs.com/itboys/p/6165008.html
Copyright © 2011-2022 走看看