从 DataFrame 中选择列时 $ 符号如何工作?

Sha*_*kar 3 scala dataframe apache-spark-sql

当我们尝试从 DataFrame 中选择列时,可以使用$"columnname"orcol("columnname")或 just "columnname"

我的问题是$ symbol[which 返回 ColumnName]是如何工作的,我可以理解我需要import sqlContext.implicits._使用 $ 符号df.select

我也没有$ methodSQLImplicits课堂上看到。我可以看到一种名为 的方法symbolToColumn(scala.Symbol s)

有人可以对此进行更多解释吗?

Sea*_*ira 5

它来自StringToColumn于隐内部类SQLImplicits(其由实现implicits对象)。

StringContextf/s和其他字符串插值器在 Scala 中编写的方式。

  • *真正*简单的答案是`foo"bla"`是`StringContext.foo("bla")`的语法糖,所以你可以通过提供一个`StringContext.foo`来“发明”你自己的字符串文字语义方法。 (6认同)