Импорт данных MongoDB в Azure ML Studio из скрипта Python - PullRequest
0 голосов
/ 03 февраля 2019

В настоящее время в Azure ML выполняется скрипт Python со следующим кодом.(Python 2.7.11), в котором результаты, полученные из mongoDB, пытаются вернуть в DataFrame с использованием pyMongo.

Я получил сообщение об ошибке типа: *

"C:\pyhome\lib\site-packages\pymongo\topology.py", line 97, in select_servers
        self._error_message(selector))
    ServerSelectionTimeoutError: ... ('The write operation timed out',)

Пожалуйста, дайте мне знать, если вызнать о причине ошибки и что нужно исправить.

Мой исходный код:

import pymongo as m
import pandas as pd

def azureml_main(dataframe1 = None, dataframe2 = None):

uri = "mongodb://xxxxx:yyyyyyyyyyyyyyy@zzz.mongodb.net:xxxxx/?ssl=true&replicaSet=globaldb"
client = m.MongoClient(uri,connect=False)
db = client['dbName']
coll = db['colectionName']
cursor = coll.find()
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\55a174d8dc584942908423ebc0bac110.py", line 32, in azureml_main
    result =  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))
ServerSelectionTimeoutError: xxxxx-xxx.mongodb.net:xxxxx: ('The write operation timed out',)
Process returned with non-zero exit code 1

1 Ответ

0 голосов
/ 05 февраля 2019

Как я знаю, существует ограничение Execute Python Scripts, которое может вызвать эту проблему, обратитесь к разделу Limitations, чтобы узнать его, как показано ниже.

Ограничения

В настоящее время выполнение скрипта Python имеет следующие ограничения:

  1. Выполнение в песочнице.Среда выполнения Python в настоящее время находится в «песочнице», и, как следствие, не разрешает постоянный доступ к сети или к локальной файловой системе.Все файлы, сохраненные локально, изолируются и удаляются после завершения работы модуля.Код Python не может получить доступ к большинству каталогов на компьютере, на котором он запущен, за исключением текущего каталога и его подкаталогов.

По вышеуказанной причине вы не можете напрямую импортировать данные изAzure Cosmos DB онлайн через драйвер pymongo в модуле Execute Python Script.Но вы можете использовать модуль Import Data с информацией о подключении и параметрах вашей БД Azure Cosmos и подключить его выход ко входу Execute Python Script для получения данных, как показано на рисунке ниже.

enter image description here

Для получения дополнительной информации об импорте данных в режиме онлайн, пожалуйста, обратитесь к разделу Import from online data sources официального документа Import your training data into Azure Machine Learning Studio from various data sources.

...