基本上,我想要执行以下操作,但没有for循环:
from pyspark.sql import functions as F
for myCol in df.schema.names:
uniqs[myCol] = df.groupby("colX").agg(F.countDistinct(myCol)).collect()
我试过
uniqs = df.groupby("colX").agg(F.countDistinct(*df.schema.names)).collect()
但这确实有别的。我想避免for循环的原因是这样,groupby操作完成了n次而不是只进行了一次,产生了很大的开销......
我在Spark 1.6.2上。