Недавно я начал использовать PySpark и его DataFrames. У меня ситуация, когда у меня около 18 миллионов записей и около 50 столбцов. Я хотел бы получить сумму каждого столбца, поэтому я использую:
df_final = df.select([f.sum(c) for c in df.columns])
df_final.collect()
Но моя проблема в том, что когда я делаю это, весь код перераспределяется только на 1 раздел, и у меня возникают проблемы с эффективностью и недостаточно памяти, когда я собираю.
Я читал, что он ведет себя так, потому что нужно поместить каждый ключ groupBy в одного исполнителя, так как я суммирую весь столбец, на самом деле мне не нужен groupBy, но я не знаю, как это сделать. достигните этого иначе.
Есть ли более эффективный / быстрый способ сделать это?