В pyspark вам нужно будет ввести количество нулей в каждом столбце в драйвер с помощью collect (). С точки зрения памяти это не должно быть большой проблемой, потому что у вас будет одно значение для каждого столбца. Попробуйте это,
from pyspark.sql import functions as F
tst= sqlContext.createDataFrame([(1,0,0),(1,0,4),(1,0,10),(2,1,90),(7,2,0),(0,3,11)],schema=['group','order','value'])
expr = [F.count(F.when(F.col(coln)==0,1)).alias(coln) for coln in tst.columns]
tst_cnt = tst.select(*expr).collect()[0].asDict()
#%%
sel_coln =[x for x in tst_cnt.keys() if tst_cnt[x]<=2]
tst_final = tst.select(sel_coln)
Я думаю, в синтаксисе sql вы можете сделать это в подзапросе.