【问题标题】:error: overloaded method value select with alternatives:错误:使用替代方法选择重载方法值:
【发布时间】:2018-11-04 12:16:41
【问题描述】:

我正在读取 dataframe1 中的 CSV 文件,然后过滤 dataframe2 中的一些列,在从 dataframe1 选择 dataframe2 的列期间,我想将我的函数应用于列值。喜欢

import utilities._
val Logs = sqlContext.read
  .format("csv")
  .option("header", "true")
  .load("dbfs:/mnt/records/Logs/2016.07.17/2016.07.17.{*}.csv")
val Log = Logs.select(
  "key1",
  utility.stringToGuid("username"),
  "key2",
  "key3",
  "startdatetime",
  "enddatetime")
display(Log)

所以我在这里打电话给utility.stringToGuid("username")。它给了我错误:

notebook:5: error: overloaded method value select with alternatives:
  (col: String,cols: String*)org.apache.spark.sql.DataFrame <and>
  (cols: org.apache.spark.sql.Column*)org.apache.spark.sql.DataFrame

【问题讨论】:

  • 只要阅读整个错误信息,不要停在中间。它确切地说你的代码有什么问题(select 的第二个参数不是字符串)。

标签: scala function select overloading


【解决方案1】:

所以实际上我找到了我的问题的答案。实际上,我将字符串“用户名”传递给实用程序函数,而不是传递“用户名”的列值。 所以在参数中它应该像utility.stringToGuid($"username")。在 scala 中,$"" 用于发送列在此处输入代码值,在 python 中使用 col()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2016-09-17
    • 2018-05-17
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多