<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks


    數據說明:
    knnuu_...txt 文件大小 3.2G 數據格式是 
    user1   user2    score
    ..
    usern   userm    score

    我這里希望通過清洗得到:
    與 user1 關系最近的 top 100 人

    由于數據并非需要百分之百準確,我放棄在分隔出的數據
    if len(dr)!=3  : continue
    開了 7 個線程 也就是 會有 7 個 用戶 的  uid 對 top 100 uid 會出現問題
    對應  總用戶數幾十萬來說  呵呵 ! 我就用這 完善7個特殊人的列表時間寫個 blog 吧


    并結合 linux split , awk 等 快速實現的 猥瑣 多線程 哈哈!!
    怎么修改下  速度提升 5倍,原來的 一小時 到 10多分鐘 。。。。。


    # split  --bytes=500m  knnuu_20091123.txt knnuu/
    #
     ls a* | awk '{system( "  python uu.py "$0" & " )}'
    import bsddb,sys
    db 
    = bsddb.hashopen('../id-item-y-09-10-11.db','c')

    uid 
    = -1
    arr
    =[]
    arrsc
    =[]
    fw 
    = open('tc/'+sys.argv[1]+'uid-uid-sc.txt','w')
    ii
    =0

    def insertion_sort(arr,arrsc,uid,sc):
        ls 
    = min(100,len(arrsc))
        if ls!=0 and sc < arrsc[ls-1] : return
        
    for i in xrange(ls):
            
    if arrsc[i]<=sc  :
                arrsc.insert(i,sc)
                arr.insert(i,uid)
                
    return
            
    elif arrsc[i] > sc :  continue
        
    if ls < 99 :
            arr.append(uid)
            arrsc.append(sc)

    #for row in open('knnuu_20091123.txt') :
    for row in open(sys.argv[1]):
        dr 
    = row.split('\n')[0].split('\t')
        
    if len(dr)!=3 : continue
        u1,u2,strsc 
    = dr[0],dr[1],dr[2]

        sc 
    = float(strsc)
        
    if uid == -1 : uid = u1
        
    if u1 != uid :
            
    for c in xrange( min(100,len(arrsc)) ):
                tu 
    = arr[c]
                ts 
    = arrsc[c]
                
    print >>fw,"%s\t%s\t%s" % ( db[u1],db[tu],ts )
            
    print uid
            fw.flush()
            arr
    =[u1]
            arrsc
    =[sc]
            uid
    =u1
        
    else :
            insertion_sort(arr,arrsc,u2,sc)
        ii
    +=1
        
    #print ii,u1,uid,u2,strsc,len(arr),len(arrsc)
        #if ii>10 : break

    fw.close()
                                                                                                                                                                            




    整理 m.tkk7.com/Good-Game
    posted on 2009-11-23 14:43 劉凱毅 閱讀(1410) 評論(0)  編輯  收藏 所屬分類: 數據清洗

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲不卡视频在线观看| 亚洲精品无码av人在线观看| 综合自拍亚洲综合图不卡区| 精品国产免费人成网站| 亚洲国产精品无码久久九九| 国产精品亚洲а∨无码播放麻豆| 日韩成人免费视频播放| 亚洲成在人线aⅴ免费毛片| 麻豆国产精品入口免费观看| 亚洲乱码国产乱码精华| 日批日出水久久亚洲精品tv| 国产免费牲交视频免费播放| 亚洲乱码精品久久久久..| 无码人妻久久一区二区三区免费| 久久精品九九亚洲精品| 国产免费不卡v片在线观看| 国产精品亚洲综合久久 | 免费精品视频在线| 亚洲精品无码久久不卡| 成全视频免费观看在线看| 亚洲码在线中文在线观看| 成人片黄网站A毛片免费| 午夜亚洲乱码伦小说区69堂| 中文字幕一精品亚洲无线一区| 久久爰www免费人成| 亚洲六月丁香婷婷综合| 免费国产a国产片高清| 国内精品免费在线观看| 亚洲免费在线观看视频| www.亚洲精品.com| 久久大香香蕉国产免费网站| 亚洲中文字幕乱码一区| 亚洲情综合五月天| 成年性羞羞视频免费观看无限| 男女啪啪免费体验区| 亚洲精品偷拍无码不卡av| 国产一区二区视频免费| 久久国产乱子伦免费精品| 色天使色婷婷在线影院亚洲| 亚洲va久久久噜噜噜久久男同| 一二三四在线观看免费高清中文在线观看 |