我目前正在使用spark 2.0,我正在尝试将数据框写为具有多个分区的镶木地板。
我正在尝试在spark shell中执行以下内容。
var partitionNames = "partition1,partition2"
var partition = partitionNames.split(",").map(elem => "\""+ elem + "\"").map(elem => elem.mkString) //"partition1","partition2"
df.write.partitionBy(partition).path("s3://")
当我执行上面的write命令时,它给出了错误,指出数据帧中不存在分区列。
如果我对分区进行硬编码,它会起作用,但是当我作为参数传递它时它不会。
答案 0 :(得分:0)
这里有两个问题:第一个列名称包含" (这可能不是你想要的),第二个是partitionBy需要varArgs字符串。
在任何情况下,假设分区在其值中包含正确的名称:
df.write.partitionBy(partition: _*).path("s3://")