使用 PySpark 的数据帧中的前 N ​​列

use*_*579 2 python scala apache-spark pyspark

如何选择一个数据框中的前N列并将其放入另一个数据框中?

有一个包含 180 列的 DF,我想创建另一个包含前 105 列的 DF,而不在脚本中隐式提及列名称。

mck*_*mck 5

您可以从 获取列名称列表df.columns,并选择列表中的前 105 个值:

df2 = df.select(df.columns[:105])
Run Code Online (Sandbox Code Playgroud)

但既然你也用 scala 标记了它,这里有一个 scala 解决方案:

val df2 = df.select(df.columns.take(105).map(col): _*)
Run Code Online (Sandbox Code Playgroud)