【发布时间】:2018-07-13 16:46:59
【问题描述】:
我在 Spark 中使用 instr() 函数时遇到问题。函数定义如下:
instr(Column str, String substring)
问题是我需要使用 Column 类型值作为第二个参数。我创建了获取两个 Column 类型参数的示例函数:
def test_func(val1:Column, val2:Column) : Column = {
val instr_val : Column = instr(val2, val1)
return instr_val
}
val df = sc.parallelize(Seq((123, "940932123"), (940, "123940932"), (932, "940123932"))).toDF("KOL1", "KOL2")
df.withColumn("KOL3", test_func($"A", $"B")).show
它给出这样的错误:
<console>:322: error: type mismatch;
found : org.apache.spark.sql.Column
required: String
val instr_val : Column = instr(val2, val1)
我尝试使用 expr() 函数,但它也给出了错误。有谁知道如何解决这个问题?
【问题讨论】:
标签: scala apache-spark apache-spark-sql