我正在使用scalding
0.12
版本TypedPipe
。我想用{header}将输出写入csv
。如何添加标题,我看到`writeHeader = true / false"但是我如何提供标题。
答案 0 :(得分:1)
使用类型安全api,我用以下代码编写TSV文件:
val data: TypedPipe[String, String] = ...
data.write(TypedTsv[(String, String)](outputPath))
TypedPipe
在TypedSeperatedFile
类中定义。看一下源代码:
trait TypedSeperatedFile extends Serializable {
def separator: String
def skipHeader: Boolean = false
def writeHeader: Boolean = false
def apply[T: Manifest: TupleConverter: TupleSetter](path: String): FixedPathTypedDelimited[T] =
apply(Seq(path))
def apply[T: Manifest: TupleConverter: TupleSetter](path: String, f: Fields): FixedPathTypedDelimited[T] =
apply(Seq(path), f)
// others apply method
}
object TypedTsv extends TypedSeperatedFile {
val separator = "\t"
}
使用标头编写TSV的一种方法是实现扩展TypedSeperatedFile
类的自己的对象:
object TypedTsvWithHeader extends TypedSeperatedFile {
val separator = "\t"
override val writeHeader = true
}
然后您可以按照以下方式使用它:
data.write(TypedTsvWithHeader[(String, String)](outputPath,
List("header1", "header2")))
答案 1 :(得分:0)
你正在寻找这样的东西吗?.write(Tsv(" bcd.tsv",schema,writeHeader = true))