zoukankan      html  css  js  c++  java
  • zip和zippartition总结

    最近在搞spark机器学习项目时,碰到了一些小问题。两个数据集要联到一起。比如rdd1=("abc","cde","dfc"),rdd2=(1,2,3)要连接成

    rdd3=(("abc",1),("cde",2),("dfc",3)),当然,小数据集的时候用zip就可以了。大数据集的时候就有问题了。每个partiton的数据条数不一致。报错。

    尝试着用别的方法解决问题。把他们全部map成1->“abc"这种类型

    如i=0;

    rdd1.map(line=>

    i=i+1;

    (i.toString,line)

    )

    然后再把他们做连接。这下该好了吧。reduce一看,傻眼了。spark它是分布式的。每台机器一个1,机器一的i 从1-20000,机器2的i也是从1-20000.这样就用很多id重复了。

    得再想个办法。

    zip不是报错嘛,zippatition怎么样?

    发现也不太好使。

    最后,把rdd1.repartition(1),rdd2.repatition(1).rdd1.zip(rdd2).

    问题解决。就是把两个rdd全部重新分区,分到一个区里。

    不过这个还是数据集不是很大。如果很大的话,分不到一个区里。就会有问题了。

    还是要多琢磨。

  • 相关阅读:
    IOS-SQLite3的封装
    IOS-SQLite3
    IOS-真机相关
    IOS-将任意对象存进数据库
    IOS-支付宝
    IOS-推送通知
    iOS-证书真机调试
    iOS-免证书真机调试
    iOS-沙盒路径
    Android之发送短信的两种方式
  • 原文地址:https://www.cnblogs.com/whu-zeng/p/5147693.html
Copyright © 2011-2022 走看看