看起来您的数据集中有 88 个字段(远超过 22 个字段),而不仅仅是 1 个。请阅读:
https://github.com/twitter/scalding/wiki/Frequently-asked-questions#what-if-i-have-more-than-22-fields-in-my-data-set
在此处查看上述链接中的文本:
如果我的数据集中有超过 22 个字段怎么办?
许多示例(例如在 tutorial/ 目录中)表明,在读取分隔文件时,fields 参数被指定为 Scala 元组。然而,Scala 元组目前被限制为最多 22 个元素。要读入具有超过 22 个字段的数据集,您可以使用符号列表作为字段说明符。例如
val mySchema = List('first, 'last, 'phone, 'age, 'country)
val input = Csv("/path/to/file.txt", separator = ",",
fields = mySchema) val output = TextLine("/path/to/out.txt") input.read
.project('age, 'country)
.write(Tsv(output))
另一种指定字段的方法是使用 Scala 枚举,它在开发分支中可用(截至 2013 年 4 月 2 日),如教程 6 所示:
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"))
因此,在阅读您的文件时,使用列表或枚举提供一个包含所有 88 个字段的模式(参见上面的链接/引用)
要跳过标头,您可以在 Csv 构造函数中另外提供 skipHeader = true 。
Csv("tutorial/data/phones.txt", fields = Schema, skipHeader = true)