在databricks中阅读outlook邮件



我想使用python从microsoft outlook中读取邮件,并使用databricks集群运行脚本。

我在本地机器上使用win32com,可以阅读电子邮件。然而,当我尝试在数据块上安装相同的包时,它似乎抛出一个错误说

DRIVER_LIBRARY_INSTALLATION_FAILURE。错误信息:org.apache.spark.SparkException: Process List(/databricks/python/bin/pip, install, pywin32,——disable-pip-version-check)退出,代码为1。错误:找不到满足pywin32要求的版本错误:pywin32

没有找到匹配的发行版

示例代码如下

import win32com.client
import pandas as pd
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI").Folders
emails_list = [
'xyz@outlook.com'
]
subjects = []
categories = []
body_content = []
names = []
for id, name in enumerate(emails_list):

folder = outlook(name)
#print('Accessing email - ' , folder)
inbox = folder.Folders("Inbox")
message = inbox.Items
message = message.GetFirst()
body_content.append(message.Body)
subjects.append(message.Subject)
categories.append(message.Categories)
names.append(name)

df = pd.DataFrame(list(zip(names,subjects,categories,body_content)), 
columns=['names','subjects','categories','body_content'])
df.head(3)

Databricks集群使用Linux(特别是Ubuntu Linux),所以你不能使用为Windows设计的COM库。你可以使用IMAP协议或类似的协议在Office 365中访问你的电子邮件(参见文档)。Python有内置的imaplib库,可用于此目的,例如,如下文所示。

最新更新