web-dev-qa-db-ja.com

リストに指定された複数の列名をSpark DataFrame?

Nの値に基づいて作成される動的リストがあります。

_n = 3
drop_lst = ['a' + str(i) for i in range(n)]
df.drop(drop_lst)
_

しかし、上記は機能していません。

私のユースケースには動的リストが必要です。

リストなしで以下を行うと動作します

_df.drop('a0','a1','a2')
_

リストでドロップ機能を動作させるにはどうすればよいですか?

Spark 2.2にはこの機能がないようです。 select()を使用せずに機能させる方法はありますか?

8
GeorgeOfTheRF

_*_演算子を使用して、リストの内容をdrop()の引数として渡すことができます。

_df.drop(*drop_lst)
_
29
mtoto

列名をコンマ区切りリストとして指定できます。

df.drop("col1","col11","col21")
3
vaquar khan

これは、scalaで指定された数の連続した列をドロップする方法です。

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

スライスは、スターインデックスとエンドインデックスの2つのパラメータを取ります。

0
Abraham