将数据从MongoDB地图集导入到Azure Machinelearning

时间:2019-09-20 10:08:03

标签: azure-machine-learning-studio mongodb-atlas

我正在尝试使用python脚本将数据从MongoDB导入Azure机器学习。我使用以下脚本:

import pymongo as pymongo
import pandas as pd

def azureml_main(dataframe1 = None, dataframe2 = None):
    client = pymongo.MongoClient("SERVER:USERNAME:PASSWORD")
    db = client['DATABASE']
    coll = db['COLLECTION']
    cursor = coll.find().limit(10)
    df = pd.DataFrame(list(cursor))
    return df,

这给了我以下错误:

Error 0085: The following error occurred during script evaluation, please view the output log for more information:
---------- Start of error message from Python interpreter ----------
Caught exception while executing function: Traceback (most recent call last):
  File "C:\server\invokepy.py", line 199, in batch
    odfs = mod.azureml_main(*idfs)
  File "C:\temp\416f67ae321a4f7b9a2d5eda63aa127c.py", line 23, in azureml_main
    df = pd.DataFrame(list(cursor))
  File "C:\pyhome\lib\site-packages\pymongo\cursor.py", line 977, in next
    if len(self.__data) or self._refresh():
  File "C:\pyhome\lib\site-packages\pymongo\cursor.py", line 902, in _refresh
    self.__read_preference))
  File "C:\pyhome\lib\site-packages\pymongo\cursor.py", line 813, in __send_message
    **kwargs)
  File "C:\pyhome\lib\site-packages\pymongo\mongo_client.py", line 728, in _send_message_with_response
    server = topology.select_server(selector)
  File "C:\pyhome\lib\site-packages\pymongo\topology.py", line 121, in select_server
    address))
  File "C:\pyhome\lib\site-packages\pymongo\topology.py", line 97, in select_servers
    self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: SERVERNAME:XXXXX:[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond,SERVERNAME:XXXXX: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond,SERVERNAME:XXXXX: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Process returned with non-zero exit code 1

这是不是由于将IP地址列入白名单而引起的?我找不到有关Azure ML产生哪种IP的任何信息。有没有解决此问题的方法?

1 个答案:

答案 0 :(得分:0)

该错误与IP白名单无关;这与无法连接到您的mongo数据库有关。检查您的连接字符串,并且您的服务器正在运行。连接字符串应类似于

mongodb://username:password@server:27017/yourdatabase?authSource=admin

首先使用您选择的命令提示符/ shell检查它是否有效

mongo mongodb://username:password@server:27017/yourdatabase?authSource=admin

然后将您的python连接更改为:

client = pymongo.MongoClient("<working connection string>")