![](/img/trans.png)
[英]hadoop streaming - how to inner join of two diff files using 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.