У меня есть требование для вычисления различных значений для большого количества столбцов (> 20 000).Теперь я использую pyspark.sql.functions.approxCountDistinct (), чтобы получить приближение для каждого отдельного столбца.Это супер быстро (HyperLogLog).После этого, если отчетливый счетчик ниже некоторого порога (например, 10), мы хотим значения.У меня есть цикл, который делает это.
distinct_values_list[cname] = df.select(cname).distinct().collect()
Это очень медленно, так как большую часть времени, у меня есть много столбцов для обработки, может быть половина столбцов (10 КБ).Нет ли способа заставить спарк делать много колонок одновременно?Похоже, что он будет распараллеливать только каждый столбец, но не сможет сделать много столбцов одновременно.
Ценю любую помощь, которую я могу получить.