Кто-нибудь знает, как сравнивать последовательные записи в 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
EDIT : Глядя на код, я только что понял, что это перечисление 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"))
}
работал чудесно. Большое спасибо. Не могли бы вы объяснить или показать мне, где я могу узнать больше об этой строке? Неявное значение defToFields (v: Enumeration # Value): Fields = v.toString " – CruncherBigData
Отредактировано для добавления некоторых деталей и ссылки на http: //www.scala -lang.org/node/130, который дает обзор неявных преобразований. –
Отличное объяснение, большое спасибо за ваши усилия. – CruncherBigData