我正在读取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
答案 0 :(得分:0)
所以实际上我找到了问题的答案。实际上,我是将字符串“ username”传递给实用程序函数,而不是传递“ username”的列值。 因此,在参数中它应该类似于Utility.stringToGuid($“ username”)。在scala中,$“”用于发送列,在此处输入代码value,在python中使用col()。