google cloud platform はじめました。with 競馬のデータセット取得
動機・概要
手元のマシンスペックがあまり良くないため(下図),計算などを行うとフィンが大変なことになります。
先日twitterでそのことをボヤいていたら,「クラウドは使わないのか?」「クラウドを使うべきだ」と言われたので,とりあえず使ってみました。
GCPを使う目的は競馬のデータセットを取得することなのですが,以前に書かれたコードのscalaのバージョンが古く,現在のバージョンに対応していませんでした。その点に関しても書いておきます。
目的
最終的に機械学習による競馬予測を行おうとしているので,データセットをgoogle cloud platform上で取得することを目的としています。
競馬のデータセットを取得するコードは,
こちらの方がscalaで書かれていたので,これを利用します。
GCPのインスタンスの立ち上げ
適当に初心者ガイドを参照して立ち上げました。理屈はおいおい理解します。
こんな感じにポチポチ選んでいくとインスタンスができます。思っていたよりもずっと簡単でした。
国によって値段が微妙に違うのを見て楽しむぐらいでした。
以前にnardtreeさんが
GCPとAWSはvisa debitでも契約できるから慣れておいた方がいいです。
— ☔️⚡️ (@nardtree) March 10, 2018
総額20000円までGCPは一年無料で、debian系Linuxの楽さを学んで社会人の時にRHELしか知らないおじさんにフィードバックしてほしい
毎年、このめんどくさいディストリビュートの更新作業があるから、Debianのローリングバージョンのやつに変えたい…
— ☔️⚡️ (@nardtree) June 6, 2018
どっかで心機一転してUbuntuから離れないと…ようやくGoogleがDebianに舵を切ったのが理解できた
とつぶやいていたので,Debianを選んでみました。いまいち違いはわかっていません。
そんなこんなで,GCPにインスタンスが立ち上がり,ターミナルを立ち上げることができました。
競馬のデータセットを取得する。
スクレイピングするコードは
にあるようにscalaで書かれていました。
一切触ったことがなかったので,とりあえず,
git clone https://github.com/stockedge/netkeiba-scraper
を行った後に,実行コマンドである
sbt "run collecturl"
をそのまま打ち込むと,「sbtのコマンドが無い」というエラーがでたため,
sbt Reference Manual — Linux への sbt のインストール
にてインストールを行いました。
再び,
sbt "run collecturl"
を実行しようとすると
というエラーが出たため,いろいろ調べていると,この2つはbuild.sbtの
libraryDependencies ++= Seq( "org.scalikejdbc" %% "scalikejdbc" % "2.0.7", "ch.qos.logback" % "logback-classic" % "1.1.2" )
を
libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-xml" % "1.1.0", "org.scalikejdbc" %% "scalikejdbc" % "2.5.3", "ch.qos.logback" % "logback-classic" % "1.1.2" )
と書き換えることで,意図通り動かすことができました。
pull requestも一応送っていますので,製作者様,もし見ていればマージお願いします。
プリリクも初めて送ったので大変緊張しました。
まとめ・今回やったこと
です。