Spark Scala - 如何一起使用 $"col" 和 S 字符串插值?
Spark Scala - how to use $"col" and S string interpolation together?
我想实现这个,用 $
而不是 col()
val x = "id"
df.select(col(s"$x"))
这给了我一个错误
df.select($s"$x")
但这有效——没有 s
前缀如何工作?这是正确的方法吗?
df.select($"$x")
谢谢。
是的,这是正确的 $"$x"
并且 return 列 col("id")
。它之所以有效,是因为方法 $
在 SQLImplicits:
中是这样定义的
implicit class StringToColumn(val sc: StringContext) {
def $(args: Any*): ColumnName = {
new ColumnName(sc.s(args: _*))
}
}
如您所见,我们调用 StringContext.sc 方法进行字符串插值。
我想实现这个,用 $
而不是 col()
val x = "id"
df.select(col(s"$x"))
这给了我一个错误
df.select($s"$x")
但这有效——没有 s
前缀如何工作?这是正确的方法吗?
df.select($"$x")
谢谢。
是的,这是正确的 $"$x"
并且 return 列 col("id")
。它之所以有效,是因为方法 $
在 SQLImplicits:
implicit class StringToColumn(val sc: StringContext) {
def $(args: Any*): ColumnName = {
new ColumnName(sc.s(args: _*))
}
}
如您所见,我们调用 StringContext.sc 方法进行字符串插值。