私は大規模なpysparkデータフレームを持っており、データフレームからすべて0である列を削除する必要があります。私はすでに集計を組み合わせてみました同じ値(0など)のpyspark列を削除する最も速い方法は何ですか?
SLOW ...
columns = list(masterdata_raw.schema.names)
zero_col = []
for col_ in columns:
col_max = masterdata_raw.agg({col_: "max"}).collect()[0]
col_min = masterdata_raw.agg({col_: "min"}).collect()[0]
if col_max == 0 and col_min == 0:
zero_col = zero_col.append(col_)
#*********removing the features found above************
for col_ in zero_col:
masterdata_raw = masterdata_raw.drop(col_)
残念ながら、これは二回集約を実行し、二回にも.collect
の結果、しかし:私は現在、このために以下のコードを使用しています1つの辞書内で同じ列名を集約しようとしていたため、結果が1つしか戻ってこなかった。私は別の名前を持つ別の列を追加して、同時に両方を集計することができたと思いますが、それは非効率的にも見えました。
pysparkのこれらの0
列すべてをフィルタリングする最も速い方法は何ですか?
何describe' 'は? – acushner