Skip to main content
 首页 » 编程设计

python之Spark 在 Python 中使用 map reduce 分析大型 mbox 邮箱文件

2024年10月01日29lovecherry

我有一个很大的 mbox 文件,我可以使用邮箱 api 解析它并转储到 csv

import mailbox 
import csv 
mbox = mailbox.mbox("emailfile.mbox") 
for message in mbox: 
with open('mail.csv','w') as fp: 
    writer = csv.writer(fp,delimiter=',') 
    for message in mbox: 
        data = [ (message['Date'],message['From'], message['To'], message['subject']) ] 
        writer.writerows(data) 
        print data 

我如何使用 pySpark 和 map reduce 来做到这一点? 我不知道如何将文件加载到 rdd 中并以 map reduce 方式使用邮箱 api。

有什么想法吗?

请您参考如下方法:

我想出了怎么做,我已经在这里上传了我的代码 - https://github.com/bbalegere/Spark-EmailDump-Analyser

我使用 formail 命令将 mbox 文件拆分为单独的 eml 文件,然后使用 sc.wholeTextFiles 读取包含所有 eml 文件的目录并对其运行并行操作。