search
LoginSignup
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Kaggle APIで楽にGCPにデータをダウンロード

GCP(Google Cloud Platform)でkaggleコンペにチャレンジしていますが、コンペのデータ量が大きいためkaggle APIを使ったデータダウンロードをやってみました。もっと賢いやり方があるかもしれないですが、自分は以下のように行いました。

1. API トークンの生成とダウンロード

Kaggleのアカウントページ(https://www.kaggle.com/ username /account)の
ページ下部のAPIでAPI tokenを生成します。
api.PNG

2. APIトークンをGCPのstorageにアップロード

直接手元のPCからGCPのCompute Engineにファイルをアップロードする方法を知らないので、一旦storageにアップロードします。

3. GCP Compute Engineでkaggle APIをインストール

GCPのCompute Engineのインスタンスを起動し、コンソールで、
pip install kaggle
kaggle APIをインストールします。
すると、ディレクトリ直下に .kaggle という名称のディレクトリが生成されます。
apitoken.PNG
先ほどAPIトークンを生成したkaggleのページでは、APIトークン生成後に上記のように、
「.kaggleというディレクトリにkaggle.jsonのAPIトークンを配置するように」という注意が出ますので、
これに従って、GCPのstorageにアップロードしたAPIトークンをこのディレクトリに移動させます。
APIトークンがStorage直下、移動させる先のディレクトリは.kaggleとすると下記コマンドで移動できます。
gsutil cp gs://バケット名/kaggle.json ./.kaggle

4.Kaggle APIでコンペデータをGCP Compute Engineのディレクトリにダウンロード

コンペのページの「Data」タブに、データダウンロードのAPIがあるので、それをコピーして
GCP Compute Engineのコンソールで実行します。
dd.PNG
例えば、今回はLANLの地震予測のコンペのデータで、それをCompute Engineの/inputというディレクトリにダウンロードしたいときのコマンドは下記です。
cd input
kaggle competitions download -c LANL-Earthquake-Prediction
すると、2GBにも及ぶコンペデータが30秒足らずでGCPに移行出来ました。
dl.PNG

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
4
Help us understand the problem. What are the problem?