scala中$some字符串的输出是什么

scala中$some字符串的输出是什么,scala,Scala,我正在与spark和scala合作,并在在线文档中看到了以下内容 df.select($"name", $"age" + 1).show() $“name”在这里是什么意思?这不是scala的东西 scala> val name = "something" name: String = something scala> println($"name") <console>:12: error: value $ is not a member of StringCont

我正在与spark和scala合作,并在在线文档中看到了以下内容

df.select($"name", $"age" + 1).show()

$“name”在这里是什么意思?

这不是scala的东西

scala> val name = "something"
name: String = something

scala> println($"name")
<console>:12: error: value $ is not a member of StringContext
       println($"name")
               ^
您可以简单地执行
dataframe.select(“columnname”).show
dataframe.select(col(“columnname”).show
也可以,但是
dataframe.select($“columnname”)
可以改变列值,就像您在示例中增加年龄一样

例如

给定一个数据帧

 +----+-------+
 | age|   name|
 +----+-------+
 |null|Michael|
 |  30|   Andy|
 |  19| Justin|
 +----+-------+

scala> dataframe.select($"name".as('myname)).show()
+-------+
| myname|
+-------+
|Michael|
|   Andy|
| Justin|
+-------+

scala> dataframe.select("age"+1).show()
org.apache.spark.sql.AnalysisException: cannot resolve '`age1`' given input columns: [age, name];;
'Project ['age1]
使用
$
的其他示例可以是基于列值的过滤器

dataframe.filter($"age" > 28).show()
因此,基本上,您正在使用Spark中的
$”
将其作为一个变量(类型为
Column

Scala在连接变量时有
${}
(也称为
字符串插值


这个问题不是另一个问题的重复。他们都在逐字逐句地问
$
符号的作用,并且都误解了它是Scala语法,而不是Spark方法。非常好的解释。多谢各位
dataframe.filter($"age" > 28).show()
scala> val printMe = "prayagupd"
printMe: String = prayagupd

scala> println(s"value = $printMe")
value = prayagupd