在数据块中阅读 outlook 电子邮件
Read outlook emails in databricks
我想使用 python 和 运行 使用数据块集群的脚本从 Microsoft Outlook 读取邮件。
我在我的本地机器上使用 win32com 并且能够阅读电子邮件。但是,当我尝试在 databricks 上安装相同的包时,似乎会抛出一条错误消息
DRIVER_LIBRARY_INSTALLATION_FAILURE. Error Message: org.apache.spark.SparkException: Process List(/databricks/python/bin/pip, install, pywin32, --disable-pip-version-check) exited with code 1. ERROR: Could not find a version that satisfies the requirement pywin32
ERROR: No matching distribution found for 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 中的电子邮件(请参阅 docs). Python has built-in imaplib
library that could be used for that purpose, for example, like in the following article.
我想使用 python 和 运行 使用数据块集群的脚本从 Microsoft Outlook 读取邮件。
我在我的本地机器上使用 win32com 并且能够阅读电子邮件。但是,当我尝试在 databricks 上安装相同的包时,似乎会抛出一条错误消息
DRIVER_LIBRARY_INSTALLATION_FAILURE. Error Message: org.apache.spark.SparkException: Process List(/databricks/python/bin/pip, install, pywin32, --disable-pip-version-check) exited with code 1. ERROR: Could not find a version that satisfies the requirement pywin32 ERROR: No matching distribution found for 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 中的电子邮件(请参阅 docs). Python has built-in imaplib
library that could be used for that purpose, for example, like in the following article.