У меня есть фреймворк pyspark, содержащий 1000 столбцов и 10000 записей (строк). Мне нужно создать еще 2000 столбцов, выполнив некоторые вычисления для существующих столбцов.
df #pyspark dataframe contaning 1000 columns and 10,000 records
df = df.withColumn('C1001', ((df['C269'] * df['C285'])/df['C41'])) #existing column names range from C1 to C1000
df = df.withColumn('C1002', ((df['C4'] * df['C267'])/df['C146']))
df = df.withColumn('C1003', ((df['C87'] * df['C134'])/df['C238']))
.
.
.
df = df.withColumn('C3000', ((df['C365'] * df['C235'])/df['C321']))
Проблема в том, что это занимает слишком много времени, около 45 минут.
Так как я новичок, мне было интересно, что я делаю не так?
PS: Я использую Spark на блоках данных с 1 драйвер и 1 рабочий узел, оба имеют 16 ГБ памяти и 8 ядер.
Спасибо!