2016-10-24 26 views
1

當我們試圖從數據框中選擇列,可以使用$"columnname"col("columnname")或只是"columnname"

我的問題是如何$ symbol [返回的ColumnName]工作,我能理解我需要import sqlContext.implicits._使用$符號上df.select

我沒有看到$ methodSQLImplicits類爲好。我可以看到名稱爲symbolToColumn(scala.Symbol s)的一種方法。

有人能解釋更多關於這個?

+0

的可能的複製[斯卡拉2.10字符串插值 - 如何插值一個字符串變量?](http://stackoverflow.com/questions/13260864/string-interpolation-in-scala-2-10-how-to-插入一個字符串變量) –

回答

1

它來自StringToColumn隱含內部類SQLImplicits(這是由the implicits object實施)。

StringContextf/s和其他字符串內插器寫在Scala中的方式。

+0

哈,所以他們重載的字符串插值行爲? Spark如何確定是否需要字符串插值與列選擇? –

+1

如果你想要字符串插值,你可以使用's' /'f',而Scala會插入默認的字符串插值器。 –

+0

啊,我知道。謝謝! –