从spark scala中的文件中获取列名

时间:2017-08-22 05:53:54

标签: scala apache-spark

我是spark / scala的新手。我有一个文件说配置,我指定所有列名称。

配置:

Id,
Emp_Name,
Dept,
Address,
Account

我有一个数据框,我选择列名称,如:

df.select("id","Emp_Name","Dept","Address","Account").show()

我没有在select中指定列名,而是想从配置文件中获取列名,如

df.select(config-file_column_names).show()

1 个答案:

答案 0 :(得分:1)

如果每列都在不同的行中,您不一定需要文件中的逗号。

这是select

的定义
def select(col: String, cols: String*): DataFrame
def select(cols: org.apache.spark.sql.Column*): DataFrame

我们将在这里使用第二个定义。

import org.apache.spark.sql.functions.col

val colNames = sc.textFile("file").map(_.replaceAll(",", "") ).map(col(_)).collect

// Unpacking the array in `select`

df.select(colNames: _*).show