【发布时间】:2019-08-20 23:35:24
【问题描述】:
我正在尝试编写一个简单的 Scala 程序,该程序最终将采用逗号分隔的列列表作为参数。目标是简单地从巨型数据帧中选择动态列集到新数据帧中。如果我对列列表进行硬编码,则可以:
df.select((Array("colA","colB")).map(df(_)) : _* ).show
所以现在我正在尝试从"colA,colB" 之类的字符串中获取该字符串。这是我最近的努力:
val cols = "colA,colB"
//split to an array, end up with each element quoted
val colList = cols.split(",").mkString("'", "', '", "'")
df.select((Array(colList)).map(df(_)) : _* ).show
这给了我以下错误:
org.apache.spark.sql.AnalysisException:
Cannot resolve column name "'colA', 'colB'" among (<actual column list>)
这当然是正确的。没有名为那个的列。我尝试了其他一些不同的方法,但我不断收到此错误。
我做错了什么?
【问题讨论】:
标签: scala apache-spark apache-spark-sql