IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
こんにちは。 Kafkaを試している最中で微妙ですが、最近使えるのかなぁ、と情報を集めているのが「Apache Spark」です。 MapReduceと同じく分散並行処理を行う基盤なのですが、MapReduceよりも数十倍速いとかの情報があります。 ・・・んな阿呆な、とも思ったのですが、内部で保持しているRDDという仕組みが面白いこともあり、 とりあえず資料や論文を読んでみることにしました。 まず見てみた資料は「Overview of Spark」(http://spark.incubator.apache.org/talks/overview.pdf)です。 というわけで、読んだ結果をまとめてみます。 Sparkとは? 高速でインタラクティブな言語統合クラスタコンピューティング基盤 Sparkプロジェクトのゴールは? 以下の2つの解析ユースケースにより適合するようMapReduceを拡張
前回 の記事では、関数型プログラミングの概念とJava8による実装例を示しました。しかしJava8のリリースは来年まで延期されてしまったため、今すぐ試してみるには少しハードルが高いかもしれません。 そこで今回は、Java7のJVM上で動作する代表的な関数型プログラミング言語、 Scala と Clojure を紹介します。 Scalaとは では、 Scala から紹介しましょう。 ScalaはJVM上で動作するプログラミング言語で、関数型の特徴とオブジェクト指向の特徴を合わせ持った、欲張りな言語です。 JVM上で動作するため、既存の膨大なJavaライブラリをそのまま流用でき、JVMのパフォーマンスチューニングノウハウを最大限活用することができます。またJavaよりも豊富な記述形式を持ちながらもJavaオブジェクトをそのまま扱え、強力な型推論を持った静的型付け言語でもあるため、定型的で冗
でインストールできます。簡単ですけどcmakeのオプションを自由にいじれないのでオススメできないかも。 sbt(Simple Build Tool) sbt(Simple Build Tool)はScala/Java用のビルドツール。ライブラリの依存関係を自動で解決してくれるし、Scalaで書かれたDSLを使ってビルド設定を簡潔に記述できます。今回はEclipseのようなIDEは使わずにemacs + sbtでストレスなく開発ができました。 参考: 始める sbt OpenCVのインストールに成功したら、ライブラリファイル(opencv-244.jar, libopencv_java244.so)をsbtプロジェクトのlibディレクトリにコピーしておきます。sbtが自動でクラスパスを追加してくれます。 Hello OpenCV in Scala Javadocを参考にしながら進めます。 *
「少数精鋭の開発メンバーで、短期間に新しい検索サービスを始められた」。特許情報などの無料検索サービスで200万人以上の会員を抱えるアスタミューゼ。同社でサービス開発を統括する三木隆史プラットフォーム事業部部長は、こう語る。スピードの秘密は、開発言語選びにあった。 同社が採用したのは、業務系システムの開発で主流になっているJavaでも、Webシステムで人気を博すRubyやPythonでもない。「関数型プログラミング言語」と呼ばれるオープンソースの開発言語の一つ、「Scala(スカラ)」だ。 Scalaは今、世界的な注目を集める。米ツイッターや米リンクトイン、英ガーディアンなど海外の名だたる企業が自社サービスの開発に採用したことで一気にその名を知らしめた。Scalaの推進企業である米タイプセーフは2012年8月に1400万米ドル(約11億円)の資金を調達。Webアプリケーションや分散処理システ
val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)
本連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaのおもしろさ,楽しさをお伝えしたいと思います。 第1回 なぜScalaなのか? 第2回 Scalaの基本的な文法 第3回 Scala言語を探検する(1) 第4回 Scala言語を探検する(2) 第5回 Scala言語を探検する(3)関数型言語としてのScala 第6回 Scala言語を探検する(4)Scalaの型システム 第7回 関数脳のつくり方 First Season 第8回 Scala DSLでできること 第9回 Scala DSL事始め(前編) 第10回 Scala DSL事始め(後編)
これはScalaを使った開発の雰囲気を感じてもらうための文章です。 ここでできるようになること Scalaプロジェクトの作成 簡単なScalaコードの作成 テストコードの実行 ログの表示 コードの実行時間の計測 システムにインストールできる形のパッケージを作成 準備 UNIX環境(Linux、 Mac OS X、あるいは Cygwin をWindowsでセットアップする) javaコマンドが使えること (環境変数PATHの設定など) その他、curl, GNU makeなどのコマンド インターネット接続 (ここから15分です) Scalaプロジェクトの作成 Scalaプロジェクトの必要最低限のひな形をGitHub上にscala-minとして作成してあります。以下のようにダウンロードしながら展開します。 $ mkdir myproject $ cd myproject $ curl -L h
1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く