用于将字符串转换为列的scala速记$无法识别字符串变量

3j86kqsm  于 2021-05-27  发布在  Spark
关注(0)|答案(3)|浏览(378)

我想用scala编写的spark应用程序使用$速记。但是我有大量的列,我想使用变量引用它们。同时,我想对包含列名的字符串使用$速记符号。

df.select($"col1") // works
val columnName = "col1"
df.select($columnName) // gives error

如何将变量columnname与$速记一起使用?

30byixjq

30byixjq1#

你可能想要的是。

val columnName = $"col1"
df.select(columnName)
``` `$` 是的捷径 `new ColumnName("name")` 
vd2z7a6w

vd2z7a6w2#

你也可以使用 col 功能。

df.select($"col1") 
val columnName = col("col1")
df.select(columnName)
sq1bmfud

sq1bmfud3#

没人提到一件很重要的事- $ 是隐式的 StringToColumn 转换。
你们进口了吗 spark.implicits._ ,在哪里 spark 是你的 SparkSession 反对?
解决你的问题:-)

相关问题