1

私は、nの値に基づいて作成された動的リストを持っています。Spark DataFrameからリストに複数の列名をドロップする方法はありますか?

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

しかし、上記は機能しません。 注:私の使用目的には動的リストが必要です。

私はちょうどリストなし以下行う場合、それは

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

がどのように私はリストとドロップ機能を動作させるか動作しますか?

スパーク2.2はこの機能を持っていないようです。 select()を使わずに動作させる方法はありますか?

答えて

4

あなたはdrop()の引数としてリストの内容を渡すために*演算子を使用することができます。

df.drop(*drop_lst) 
+0

ありがとう! *演算子は何をしますか?その意義は何ですか? –

+1

イテレータを左に置くと、そのイテレータの内容がアンパックされます。あなたのリストの個々の要素を生成します。 – mtoto

-1

あなたはdrop(*cols) 2つの方法を使用することができます。

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

チェック公式ドキュメントDataFrame.drop

関連する問題