我有一个动态列表,它是根据n的值创建的。
n = 3
drop_lst = ['a' + str(i) for i in range(n)]
df.drop(drop_lst)
但上述情况无效。
注意:
我的用例需要动态列表。
如果我只是在没有列表的情况下执行以下操作
df.drop('a0','a1','a2')
如何使drop功能与list一起使用?
Spark 2.2似乎没有此功能。有没有办法让它工作而不使用select()
?
答案 0 :(得分:22)
您可以使用*
运算符将列表内容作为参数传递给drop()
:
df.drop(*drop_lst)
答案 1 :(得分:2)
您可以将列名指定为以逗号分隔的列表,例如
df.drop("col1","col11","col21")
答案 2 :(得分:0)
这是如何在scala中删除指定数量的连续列:
val ll = dfwide.schema.names.slice(1,5)
dfwide.drop(ll:_*).show
切片具有两个参数:星形索引和结束索引。
答案 3 :(得分:-1)
您可以使用drop(*cols)
2种方式。
df.drop('age').collect()
df.drop(df.age).collect()
查看官方文档DataFrame.drop