20

Usando la API de Kaggle con Google Colab para carga y descarga de datasets

Dataset a usar en esta rutina:

Temperature (°C) https://www.kaggle.com/berkeleyearth/climate-change-earth-surface-temperature-data#GlobalLandTemperaturesByCountry.csv

Para evitar la descarga local del archivo, realizaremos unos pasos aprovechando la API de Kaggle, de tal forma que podamos descargar el archivo directamente en drive.

<h3>1. Instalando kaggle</h3>
! pip install -q kaggle
<h3>2. Importando el sistema de archivos que nos provee Colab</h3>
from google.colab import files
<h3>3. Creación y carga de API key</h3>

3.1. Lo primero que debemos hacer es ir a Kaggle > account y con el mouse bajamos hasta la opción API.

3.2. Una vez allí, hacemos click en la opción Create New API Token, lo cual descargará un archivo .json que nos permitirá conectarnos a la api de Kaggle.

3.3. Ahora usaremos el módulo de files para cargar el archivo en nuestro sistema local.

files.upload()
Saving kaggle.json to kaggle.json

3.4. Creamos una carpeta oculta en el sistema de archivos con el nombre .kaggle.

 ! mkdir ~/.kaggle

3.5. Copiamos el archivo de credenciales que subimos en el paso 3.3 a la carpeta que creamos previamente.

! cp kaggle.json ~/.kaggle/

3.6. Cambiamos los permisos para permitir lectura de las credenciales.

!chmod 600 ~/.kaggle/kaggle.json
<h3>4. Probando la conexión a la API de Kaggle</h3>

vamos utilizar el comando para listar algunos de los datasets que tenemos disponibles para consulta y verificar de esta forma que nos permita conectarnos de manera correcta.

! kaggle datasets list
Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.6 / client 1.5.4)
ref                                                               title                                             size  lastUpdated          downloadCount  
----------------------------------------------------------------  -----------------------------------------------  -----  -------------------  -------------  
gpreda/covid19-tweets                                             COVID19 Tweets                                    21MB  2020-08-14 07:51:12           2064  
christianlillelund/passenger-list-for-the-estonia-ferry-disaster  The Estonia Disaster Passenger List               14KB  2020-07-26 15:40:17            576  
futurecorporation/epitope-prediction                              COVID-19/SARS B-cell Epitope Prediction            1MB  2020-07-24 02:53:28            488  
Cornell-University/arxiv                                          arXiv Dataset                                    877MB  2020-08-14 23:50:57           1359  
vidyapb/indian-school-education-statistics                        Indian School Education Statistics                24KB  2020-07-23 17:26:11           1133  
claytonmiller/ashrae-global-thermal-comfort-database-ii           ASHRAE Global Thermal Comfort Database II          3MB  2020-07-21 02:47:43            118  
jeffreybraun/chipotle-locations                                   Chipotle Locations                               124KB  2020-07-28 20:20:41            538  
ahsen1330/us-police-shootings                                     US Police Shootings                              126KB  2020-07-30 04:23:34           1319  
jeffreybraun/chopped-10-years-of-episode-data                     Chopped: 10+ Years of Episode Data               305KB  2020-07-30 15:19:41            161  
susuwatari/ppp-loan-data-paycheck-protection-program              PPP Loan Data (Paycheck Protection Program)       26MB  2020-08-01 23:29:41            271  
shuyangli94/this-american-life-podcast-transcriptsalignments      This American Life Podcast Dialog Transcripts     76MB  2020-08-01 20:45:13             38  
umairnasir14/impact-factor-of-top-1000-journals                   Impact factor of top 1000 journals               397KB  2020-08-03 08:25:35            151  
benroshan/factors-affecting-campus-placement                      Campus Recruitment                                 5KB  2020-04-11 11:09:02          14104  
bobbyscience/league-of-legends-diamond-ranked-games-10-min        League of Legends Diamond Ranked Games (10 min)  539KB  2020-04-13 13:53:02           5563  
divyansh22/flight-delay-prediction                                January Flight Delay Prediction                   23MB  2020-04-14 13:15:41           4715  
clmentbisaillon/fake-and-real-news-dataset                        Fake and real news dataset                        41MB  2020-03-26 18:51:15          11879  
ikiulian/global-hospital-beds-capacity-for-covid19                Global Hospital Beds Capacity (for covid-19)     284KB  2020-04-26 09:39:35           4023  
praveengovi/coronahack-chest-xraydataset                          CoronaHack -Chest X-Ray-Dataset                    1GB  2020-03-20 01:26:40           5624  
bappekim/air-pollution-in-seoul                                   Air Pollution in Seoul                            20MB  2020-04-03 16:33:49           5624  
imdevskp/india-district-wise-shape-files                          India 2020 District Level Shape files             22MB  2020-04-10 09:03:16           1411  
<h3>5. Descargando un archivo desde Kaggle a nuestro Drive</h3>

5.1. Para este paso podemos ir a la página principal del dataset que queremos descargar.
5.2. Hacemos click en el botón a la derecha de New Notebook, lo cual desplegará un menú y en él seleccionaremos la opción Copy API Command.

5.3. Usaremos el comando para descargar datasets desde kaggle

! kaggle datasets download -d <ruta del dataset en kaggle, copiada al presionar el botónCopy API Command>
! kaggle datasets download -d berkeleyearth/climate-change-earth-surface-temperature-data
Downloading climate-change-earth-surface-temperature-data.zip to /content
 96% 81.0M/84.7M [00:04<00:00, 13.6MB/s]
100% 84.7M/84.7M [00:04<00:00, 18.6MB/s]

Bonus - Activar la unidad de drive para usarla en Colab

<h3>1. Importamos la librería drive desde google.colab</h3>

1.2. Usamos el método mount para especificar la unidad a montar.

from google.colab import drive
drive.mount('/content/drive/')
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly&response_type=code

Enter your authorization code:
··········
Mounted at /content/drive/
<h3>2. Descomprimir el archivo desde drive</h3>

2.1. Creamos el directorio donde queremos guardar nuestro archivo descomprimido con el comando:

!mkdir '/content/drive/My Drive/Colab Notebooks/db/'
# !mkdir '/content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/'

2.2. Finalmente, descomprimiremos el archivo utilizando el comando unzip de la siguiente forma:

!unzip <archivo a descomprimir> -d <'ruta de destino del archivo'>
!unzip climate-change-earth-surface-temperature-data.zip -d '/content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/'
Archive:  climate-change-earth-surface-temperature-data.zip
  inflating: /content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/GlobalLandTemperaturesByCity.csv  
  inflating: /content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/GlobalLandTemperaturesByCountry.csv  
  inflating: /content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/GlobalLandTemperaturesByMajorCity.csv  
  inflating: /content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/GlobalLandTemperaturesByState.csv  
  inflating: /content/drive/My Drive/Colab Notebooks/manipulacion_datos_pandas/db/GlobalTemperatures.csv  

Si te gustó el contenido deja un 💚 en este tutorial, si quieres más como este, ve a seguirme en Github.

<img src=‘https://cdn.jsdelivr.net/npm/[email protected]/icons/github.svg’ alt=‘github’ height=‘40’>

Escribe tu comentario
+ 2
2
1652Puntos

@unicristianr
Excelente Aporte a la Comunidad
Muchas gracias

0
8592Puntos

Hola estimado @unicristianr, ¿esta metodología se puede llevar a cabo para ser trabajado en ubuntu?

1
29076Puntos
un año

Hola @rtusso, esta guía estaba enfocada en la herramienta Google Colab, sin embargo, en la teoría las instancias de colab son instancias de linux tradicionales, así que debería ser sencillo replicar los pasos(con leves cambios), en cualquier instancia de ubuntu