如何从Spark DataFrame中删除列表中给出的多个列名



我有一个动态列表,该列表是根据n。

的值创建的
n = 3
drop_lst = ['a' + str(i) for i in range(n)]
df.drop(drop_lst)

,但以上不起作用。

注意

我的用例需要一个动态列表。

如果我只做以下列表,则可以正常工作

df.drop('a0','a1','a2')

如何使Drop功能与列表一起使用?

Spark 2.2似乎没有此功能。有没有使用select()

使其正常工作的方法

您可以使用*操作员将列表的内容作为参数传递给drop()

df.drop(*drop_lst)

您可以将列名作为逗号分隔列表,例如

df.drop("col1","col11","col21")

这就是降低指定数量的连续列中的连续列:

val ll = dfwide.schema.names.slice(1,5)
dfwide.drop(ll:_*).show

切片以两个参数星形索引和结束索引。

使用简单循环:

for c in drop_lst:
   df = df.drop(c)

您可以使用drop(*cols) 2方法。

  1. df.drop('age').collect()
  2. df.drop(df.age).collect()

检查官方文档dataframe.drop

相关内容

  • 没有找到相关文章

最新更新