Scala

Spark DataFrameに新しい列を追加する

下記のようにUDF使うか, mapでDataFrameごと新しくするか、なのか? import spark.implicits._ import org.apache.spark.sql.functions._ // Example data val df = Seq( (1, 2), (3, 4), (5, 6) ).toDF("x", "y") // Define function val hoge = udf({(x: I…

標準入力を受け取りたい

そういう時もある。書き方結構あるなぁ。 書き方1 import scala.io.StdIn.readLine object Main { def main(args: Array[String]){ val Array(a, b) = readLine().split(" ").map(_.toInt) println((a,b)) val s = readLine() println(s) } } 実行例 $ scala…

Scalaのforは直積集合を作るのに便利

scala> for(x <- 1 to 3; y <- 1 until 5){println(x + " " + y)} 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4 これはイケてる。

Apache Sparkでコール・オプション価格の分散処理計算 with Google Cloud Dataproc

モンテカルロ法でコール・オプション価格 - My Life as a Mock Quantを流行りの分散処理環境Apache Sparkでやってみたという話。 コード書くのは一瞬なんだけど、依存関係周りの解消が辛かったので、積極的にコード残しておきたい。下記コード+sbtファイルを…

モンテカルロ法でコール・オプション価格

とりあえず慣れてるのからということで・・・Wolfram Alphaで出した結果と大体あってるので、これでよさげだ。 import scala.util.Random import scala.math object App { def main(args: Array[String]) = { val random = new Random() // Monte Carlo sett…

applyは()の糖衣構文なのか?

そういうことっぽい。 scala> Seq(1,2,3) res0: Seq[Int] = List(1, 2, 3) scala> Seq.apply[Int](1,2,3) res1: Seq[Int] = List(1, 2, 3) 参考 第22章:Scalaの抽出子

ActivatorのTemplateで"reference to fork is ambiguous"を食らうケースがある

Scalaおじさんにもなってきたので、マメにハマりをめも。Typesafe Activator使ってScalaしてて、Hello PlayFramework的なTutorialが動かなくてこまった。 同じ症状の人はこちら。 https://github.com/typesafehub/activator/issues/1060 要するに、build.sbt…