####GCP(Google Cloud Platform)でkaggleコンペにチャレンジしていますが、コンペのデータ量が大きいためkaggle APIを使ったデータダウンロードをやってみました。もっと賢いやり方があるかもしれないですが、自分は以下のように行いました。
#1. API トークンの生成とダウンロード
Kaggleのアカウントページ(https://www.kaggle.com/ username /account)の
ページ下部のAPIでAPI tokenを生成します。
#2. APIトークンをGCPのstorageにアップロード
直接手元のPCからGCPのCompute Engineにファイルをアップロードする方法を知らないので、一旦storageにアップロードします。
#3. GCP Compute Engineでkaggle APIをインストール
GCPのCompute Engineのインスタンスを起動し、コンソールで、
pip install kaggle
kaggle APIをインストールします。
すると、ディレクトリ直下に .kaggle という名称のディレクトリが生成されます。
先ほど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のコンソールで実行します。
例えば、今回はLANLの地震予測のコンペのデータで、それをCompute Engineの/inputというディレクトリにダウンロードしたいときのコマンドは下記です。
cd input
kaggle competitions download -c LANL-Earthquake-Prediction
すると、2GBにも及ぶコンペデータが30秒足らずでGCPに移行出来ました。