簡體   English   中英

Hadoop Streaming:Python連接不同的文件

[英]Hadoop Streaming :Python Join different files

我有一個獲取輸入數據,處理並輸出數據的過程,在此過程中會生成兩個日志IN.log和OUT.log

IN.log包含何時輸入數據以及數據的來源。 OUT.log包含何時處理數據以及數據的數據。 所以... IN.log包含即時ID

OUT.log包含超時ID

現在,作為使用python使用hadoop流進行處理的一部分,我想加入這兩個文件,並附帶不同的進出時間和數據ID。

例如:

2秒id123

3秒id112

關於如何使用PYTHON實現此目標的任何指示?

看一下運行MRjob作業的MRjob幫助程序包。 為此任務寫一個map / reduce非常簡單,類似於下面的代碼

from datetime import datetime
from MRJob import MRJob

class JoinJob(MRJob):
    fmt = '%Y-%M-%d'
    def steps(self):
        return [self.mr(mapper=self.mapper, 
                        reducer=self.reducer)]
    def mapper(self, rec_time, rec_id):
        yield rec_id, rec_time

    def reducer(self, rec_id, datetime_strs):
        datetimes = map(lambda x: datetime.strptime(x, self.fmt), 
                            datetime_strs)
        delta_secs = (max(datetimes) - min(datetimes)).total_seconds()
        yield rec_id, delta_secs

if __name__ == '__main__':
    JoinJob.run()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM