2

スキーマを作成するときに、 scaldingで連続したレコードを比較する方法を知っている人はいますか? チュートリアル 6 を見ていて、レコード #2 のデータがレコード #1 (すべてのレコード) より大きい場合、その人の年齢を出力したいとします。

例えば:

R1: John 30
R2: Kim 55
R3: Mark 20 

if Rn.age > R(n-1).age the output ... which will result to R2: Kim 55

編集: コードを見て、それが Scala 列挙であることに気付いたので、私の質問は scala 列挙でレコードを比較する方法ですか?

class Tutorial6(args : Args) extends Job(args) {
  /** When a data set has a large number of fields, and we want to specify those fields conveniently
    in code, we can use, for example, a Tuple of Symbols (as most of the other tutorials show), or a List of Symbols.
    Note that Tuples can only be used if the number of fields is at most 22, since Scala Tuples cannot have more
    than 22 elements. Another alternative is to use Enumerations, which we show here **/

  object Schema extends Enumeration {
    val first, last, phone, age, country = Value // arbitrary number of fields
  }

  import Schema._

  Csv("tutorial/data/phones.txt", separator = " ", fields = Schema)
    .read
    .project(first,age)
    .write(Tsv("tutorial/data/output6.tsv"))
}
4

1 に答える 1