LoginSignup
11
4

More than 5 years have passed since last update.

GCP上でKaggle APIを使ってKaggleのデータを爆速でダウンロードする

Last updated at Posted at 2019-04-29

この記事ではGoogle Cloud Platformと、Kaggle APIを用いてKaggleの容量が大きなデータでも、ローカルよりも速い速度でダウンロードするということをやります。

具体的にはGoogle Cloud Engineで仮想マシンを立ち上げ、そのマシン上でKaggle APIを使いデータをダウンロードします。GCP上の仮想マシンはGoogleの回線を使っているので、普通に自宅のwifiなどを使うよりは断然速くダウンロードすることができます。

対象者

  • 最近Kaggleを始めた人
  • GCP上でKaggleをやってみたい人
  • データでかすぎてうぜえって思った人

概要

  1. GCEインスタンス立ち上げ
  2. Kaggle API導入
  3. Kaggle データセットダウンロード

前提条件

  • GCPを使える
  • Kaggleに登録している

1 GCEインスタンス立ち上げ

まずはGCPのコンソール画面からGCEというサービスで仮想マシンを立ち上げます。
(そもそもGCEって? https://qiita.com/oosha/items/746dc4a9ad16f5a6beac)

左のサイドバーのComputed Engineから、インスタンスを作成する

スクリーンショット 2019-03-11 10.25.23.png

スクリーンショット 2019-03-11 10.26.15.png

インスタンスの名前は任意の名前

リージョンはサーバーの場所,今回はeastUS1にする。(場所によっては無料枠でなくなる、アメリカの方が何かとアクセスが早い)

マシンのメモリは、30GB(120GBとかは大学の研究などのレベル)

料金に関しては
https://cloud.google.com/compute/pricing?hl=ja

メモリの若干の目安

スクリーンショット 2019-03-11 10.30.18.png

ブートディスクはubuntsu16,サイズは50GBくらいあればいい

スクリーンショット 2019-03-11 10.30.53.png

アクセス権は全て許可
ファイアウォールも全てチェック

スクリーンショット 2019-03-11 10.32.04.png

作成ボタンを押して、少し待つとインスタンスが立ち上がる

スクリーンショット 2019-03-11 10.33.03.png

興味があれば下の記事もご覧になってみてください。
ローカルのターミナルからssh通信でGCSに接続する方法
https://qiita.com/matken11235/items/e4e7de36ef5f01f1d1d7

出来るだけ安くGCEを使う方法
https://qiita.com/Brutus/items/22dfd31a681b67837a74

2 Kaggle APIの導入

次にKaggle APIを仮想マシンに導入します。
まずは仮想マシンにSSH通信というもので仮想マシンのシェルに入ります。
これはとても簡単で下の画像のように、SSHというボタンをクリックするだけで入ることができます。

スクリーンショット 2019-03-11 10.34.56.png

次にシェルでpip install kaggle というコマンドを打ち込みでAPIをインストールします。

次にKaggleにログインし、アカウントページからcreate API Tokenを作る

スクリーンショット 2019-03-12 0.39.10.png

kaggle.jsonファイルがダウンロードされる

そのファイルの中身を仮想マシンに移します。方法はいろいろありますが、今回は簡単にファイルを作成してコピペするなどして貼り付けます。

touch ~/.kaggle/kaggle.json
vimやemacsなどのファイル編集ソフトでファイルにコピペする

kaggle.jsonのパーミッションを600にする。以上で、kaggleコマンドが使えるようになります。

chmod 600 ~/.kaggle/kaggle.json

3 Kaggle データセットダウンロード

kaggle コマンド

まずは簡単にKaggelコマンドの使い方について

kaggle -hと後ろに-hをつけてやると、次のようにhelpが表示されるので、helpを見ながら使えばそんなに困らない感じです。

コマンド例 結果
kaggle competitions list コンペの一覧を取得
kaggle competitions files -c titanic タイタニックコンペのデータサイズ等を表示
kaggle competitions download -c titanic タイタニックコンペのデータをダウンロード
kaggle competitions
submit -c titanic -f pred.csv -m test
タイタニックコンペにpred.csvをサブミット。
メッセージはtest
kaggle competitions submissions -c titanic タイタニックコンペの自分のサブミット一覧を表示

実際にkaggleのデータセットをダウンロードします。(早い)

kaggle competitions download -c titanic

このような感じてKaggleのデータをダウンロードすることができます。
しかし、毎回環境構築するのは面倒なので下の記事を参考に、環境構築を自動化するなど工夫するといいです。

GCPとDockerでKaggle用計算環境構築

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4