【问题标题】:error: overloaded method value options with alternatives错误:使用替代方法重载方法值选项
【发布时间】:2016-05-24 06:33:00
【问题描述】:

我正在尝试将我的数据帧保存在 s3 中,如下所示:

myDF.write.format("com.databricks.spark.csv").options(codec="org.apache.hadoop.io.compress.GzipCodec").save("s3n://myPath/myData.csv")

然后我得到了错误:

<console>:132: error: overloaded method value options with alternatives:
  (options: java.util.Map[String,String])org.apache.spark.sql.DataFrameWriter <and>
  (options: scala.collection.Map[String,String])org.apache.spark.sql.DataFrameWriter
 cannot be applied to (codec: String)

有人知道我错过了什么吗?谢谢!

【问题讨论】:

    标签: scala apache-spark dataframe


    【解决方案1】:

    Scala 不是 Python。它没有 **kwargs。你必须提供Map:

    myDF.write.format("com.databricks.spark.csv")
      .options(Map("codec" -> "org.apache.hadoop.io.compress.GzipCodec"))
      .save("s3n://myPath/myData.csv")
    

    【讨论】:

    • 我实际上没有保存到一个 myData.csv 文件,而是得到了一个 myData.csv“文件夹”,其中多个 csv.gz 文件存储在该文件夹下。有没有办法将其保存到 csv 文件中。谢谢!
    • @Edamame 你不能有一个文件without coalescing to a single partition,除非输出的大小可以忽略不计,否则这基本上是无用的。
    • @zero323:谢谢!假设我合并到一个分区,如何将其保存到一个 csv 文件?谢谢!
    • 使用 zero323 评论中提到的重新分区
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2016-09-17
    • 2018-05-17
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 2019-07-10
    相关资源
    最近更新 更多