1

我正在使用scalding 0.12带有TypedPipe. 我想csv用标题将输出写入。我如何添加标题,我看到了“writeHeader=true/false”的选项,但我如何提供标题。

4

2 回答 2

1

使用类型安全 api,我使用以下代码编写 TSV 文件:

val data: TypedPipe[String, String] = ...
data.write(TypedTsv[(String, String)](outputPath))

TypedPipeTypedSeperatedFile类中定义。看一下源代码:

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")))
于 2017-08-02T14:44:39.000 回答
0

.write(Tsv("bcd.tsv", 架构, writeHeader = true))

你在找这样的东西吗?

于 2015-03-13T20:31:07.803 回答