Scala Spark DataFrame : dataFrame. 根据列名序列选择多个列

标签 scala apache-spark dataframe apache-spark-sql

val columnName=Seq("col1","col2",....."coln");

有没有办法做 dataframe.select 操作来获取只包含指定列名的数据帧。
我知道我可以做 dataframe.select("col1","col2"...)columnName在运行时生成。
我可以做 dataframe.select()对循环中的每个列名重复。它是否有任何性能开销?。有没有其他更简单的方法来实现这一点?

最佳答案

val columnNames = Seq("col1","col2",....."coln")

// using the string column names:
val result = dataframe.select(columnNames.head, columnNames.tail: _*)

// or, equivalently, using Column objects:
val result = dataframe.select(columnNames.map(c => col(c)): _*)

关于Scala Spark DataFrame : dataFrame. 根据列名序列选择多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36131716/

相关文章:

scala - SBT 多项目设置,其中子项目构建文件依赖于非托管 JAR

Scala 情商问题

apache-spark - Spark中RDD和批处理的区别?

python - 每次特定列的字符串内容发生变化时从 0 重新启动索引

python - 如何从数据帧生成频率表?

python - 检查列标题是否与 PYTHON 匹配

sql - 使用 Postgres 枚举进行 JDBC 插入

scala - 将带有结构类型键的映射传递到 Spark UDF

scala - 我们可以在德鲁伊中进行转换吗

java - 如何使用 spark Java API 从 HDFS 读取二进制文件流?