web-dev-qa-db-fra.com

Dans Google Collab, le débit de données IOPub est dépassé

Débit de données IOPub dépassé. Le serveur de bloc-notes arrête temporairement d'envoyer la sortie au client afin d'éviter de la bloquer. Pour modifier cette limite, définissez la variable de configuration --NotebookApp.iopub_data_rate_limit.

Valeurs actuelles:

NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)
7
Raja

Une erreur IOPub se produit généralement lorsque vous essayez d'imprimer une grande quantité de données sur la console. Vérifiez vos instructions d'impression - si vous essayez d'imprimer un fichier qui dépasse 10 Mo, il est probable que cela ait provoqué l'erreur. Essayez de lire de plus petites portions du fichier/des données.

J'ai rencontré ce problème lors de la lecture d'un fichier de Google Drive vers Colab. J'ai utilisé ce lien https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb et le problème était dans ce bloc de code

# Download the file we just uploaded.
#
# Replace the assignment below with your file ID
# to download a different file.
#
# A file ID looks like: 1uBtlaggVyWshwcyP6kEI-y_W3P8D26sz
file_id = 'target_file_id'

import io
from googleapiclient.http import MediaIoBaseDownload

request = drive_service.files().get_media(fileId=file_id)
downloaded = io.BytesIO()
downloader = MediaIoBaseDownload(downloaded, request)
done = False
while done is False:
  # _ is a placeholder for a progress object that we ignore.
  # (Our file is small, so we skip reporting progress.)
  _, done = downloader.next_chunk()

downloaded.seek(0)

#Remove this print statement
#print('Downloaded file contents are: {}'.format(downloaded.read()))

J'ai dû supprimer la dernière instruction d'impression car elle dépassait la limite de 10 Mo dans le bloc-notes - print('Downloaded file contents are: {}'.format(downloaded.read()))
Votre fichier sera toujours téléchargé et vous pouvez le lire en petits morceaux ou lire une partie du fichier.

4
Srishti

La réponse ci-dessus est correcte, je viens de commenter l'instruction d'impression et l'erreur a disparu. il suffit de le garder ici pour que quelqu'un puisse le trouver utile. Supposons que vous lisez un fichier csv à partir de Google Drive, importez simplement pandas et ajoutez pd.read_csv (téléchargé), cela fonctionnera très bien.

file_id = 'FILEID'

import io
from googleapiclient.http import MediaIoBaseDownload

request = drive_service.files().get_media(fileId=file_id)
downloaded = io.BytesIO()
downloader = MediaIoBaseDownload(downloaded, request)
done = False
while done is False:
  # _ is a placeholder for a progress object that we ignore.
  # (Our file is small, so we skip reporting progress.)
  _, done = downloader.next_chunk()

downloaded.seek(0)
pd.read_csv(downloaded);
1
Abhishek