で$いくつかの文字列の出力は、私が火花やスカラ座での作業やオンラインドキュメントに次はScalaの
df.select($"name", $"age" + 1).show()
を見ていているもの$「の名前は、」ここで何を意味するのでしょうか?
で$いくつかの文字列の出力は、私が火花やスカラ座での作業やオンラインドキュメントに次はScalaの
df.select($"name", $"age" + 1).show()
を見ていているもの$「の名前は、」ここで何を意味するのでしょうか?
これはスカラではありません。
むしろ火花のことは、represent a columnと思われます。
はimplicit class StringToColumn(val sc: StringContext) {
def $(args: Any*): ColumnName = {
new ColumnName(sc.s(args: _*))
}
}
あなたはあまりにもdataframe.select("columnname").show
またはdataframe.select(col("columnname")).show
を行うことができ、ここでは上org.apache.spark.sql.SQLImplicitsコードを参照してください、しかし、あなたはあなたの例では、年齢を増加しているようdataframe.select($"columnname")
は、列の値を変異させます。
例えば、
だから、dataframe.filter($"age" > 28).show()
、基本的に、あなたがそれ(タイプColumn
の)変数作っている$
を使用するには、データフレームを考える
+----+-------+
| 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]
他の例では、列の値に基づいてフィルタすることができSparkの$""
となります。
変数を連結しながら、Scalaは(別名String interpolation
)
scala> val printMe = "prayagupd"
printMe: String = prayagupd
scala> println(s"value = $printMe")
value = prayagupd
素敵な説明です。どうもありがとうございます – user373201
http://docs.scala-lang.org/overviews/core/string-interpolation.html –
この質問は重複しない、
${}
を持っていますもう一方の – puhlen彼らは文字通り '$'シンボルが何をしているのかを尋ねていますし、SparkメソッドではなくScalaの構文であると誤解しています。 –