假设我有某个案例类Dataset
,例如
case class Foo(colour: String, count: Int)
val ds: Dataset[Foo] = sqlContext.createDataset(Seq(
Foo("red", 10),
Foo("red", 22),
Foo("blue", 12)
))
如何将其保存到由其中一个字段分隔的文件系统,例如foo
,以便输出目录为:
/my-path/foo=red/
/my-path/foo=blue/
,内容如下
> cat /my-path/foo=red/*
10
22
> cat /my-path/foo=blue/*
12
使用案例类的字段名称是否有直接的方法来执行此操作?
答案 0 :(得分:1)
目前(Spark 1.4 +)
ds.toDF().write.partitionBy("foo").text("/my-path")
从Spark 2.0开始,toDF()
可能会变得多余,因为API将被合并。
对于其他格式,只需将text
更改为json
或parquet