Taro Saito gave a presentation on workflow tools and techniques. He discussed common workflow features like dependency management, scheduling, and error handling. Popular open-source workflow tools mentioned included Airflow, Luigi, Oozie, and Azkaban. Saito also covered dataflow engines that can translate processing programs into cluster computing programs using Spark, Flink, and other tools. He
この記事では、Scalaのパーサコンビネータを用いて、BNF風の定義を書くだけで、オブジェクトのマッピングからパースエラーのハンドリングまでできてしまう高機能なパーサを作る方法を解説します! パーサコンビネータとは? Scalaにはパーサコンビネータというライブラリがあります。BNFと似たの記法で構造を定義するだけで簡単にパーサを実装することができます。たとえば、□□□-□□□□のような形式の郵便番号をパースするコードは次のように書くことができます。 import scala.util.parsing.combinator._ object PostalCodeParser extends RegexParsers { def postalCode = """\d{3}""".r ~ "-" ~ """\d{4}""".r } println(PostalCodeParser.parseA
Scalaパーサコンビネータのデフォルトの振る舞いでは、パースしたトークンの何行目・何文字目といった位置情報は捨てられてしまいます。この記事では、Positional trait を使って位置情報を含んだトークンの取得方法を解説します。 パーサコンビネータの基本的な使い方は、面倒くさいパーサの実装もDSLで書くだけ!そう、Scalaならね - Qiitaをご覧ください。 実装のポイント 1. Positonal traitをインポートしておく 位置情報をトークンに持たせるには Positonal traitが必要になるので、インポートしておきます。 2. トークンのcase classを作っておく トークンのcase classを作るのですが、その際ベースとなる sealed trait を作り Positonal trait を継承しておきます。更に、case classはベースとなるそ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く