Scala / Spark:如何将此参数传递给.select语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala / Spark:如何将此参数传递给.select语句相关的知识,希望对你有一定的参考价值。

我有办法获得一个有效的数据框的子集:

This works
val subset_cols = {joinCols :+ col}
val df1_subset = df1.select(subset_cols.head, subset_cols.tail: _*)

这不起作用:(代码编译但我得到运行时错误)

val subset_cols = {joinCols :+ col}
val df1_subset = df1.select(subset_cols.deep.mkString(","))

错误:

Exception in thread "main" org.apache.spark.sql.AnalysisException: 
cannot resolve '`first_name,last_name,rank_dr`' given input columns: 
[model, first_name, service_date, rank_dr, id, purchase_date, 
dealer_id, purchase_price, age, loyalty_score, vin_num, last_name, color];;

'Project ['first_name,last_name,rank_dr]

我试图将subset_cols传递给.select方法,但似乎我错过了某种格式。有人可以协助。

谢谢

答案

你做的是:

df1.select("first_name,last_name,rank_dr")

Spark尝试找到一个名为"first_name,last_name,rank_dr"的列,该列不存在

尝试:

val df1_subset = df1.selectExpr(subset_cols: _*) 

以上是关于Scala / Spark:如何将此参数传递给.select语句的主要内容,如果未能解决你的问题,请参考以下文章

如何将复杂的 Java 类对象作为参数传递给 Spark 中的 Scala UDF?

如何将 POST 参数传递给 Durable Function,然后将此参数传递给 Timer Triggered 函数

如何将参数传递给scala中的方法

如何在 SparkR 中将额外的参数传递给 spark.lapply?

将可为空的列作为参数传递给 Spark SQL UDF

如何在 Spark SQL 中将额外参数传递给 UDF?