Я пытаюсь создать максимальный столбец с этим кодом. Столбец суммы работ
Просуммировать :
for col in list_names:
for month in [3,6,9,12]:
companies = companies.withColumn(col + 'sum_'+ str(month) + '_months', sum(companies[col + ult_pats2[month_ix - ix]] for ix in range(month)) )
Максимум:
for col in list_names:
for month in [3,6,9,12]:
companies = companies.withColumn(col + 'max_'+ str(month) + '_months', max(companies[col + ult_pats2[month_ix - ix]] for ix in range(month)) )
Сообщение об ошибке:
"ValueError: Невозможно преобразовать столбец в bool: используйте '&' для 'и', '|' для 'or', '~' для 'not' при построении логических выражений DataFrame "
0
ecan
29 Май 2019 в 13:57
2 ответа
Лучший ответ
Наконец, он работал с этим кодом, используя sf.greatest:
import pyspark.sql.functions as sf
for col in list_names:
for month in [3,6,9,12]:
companies = companies.withColumn('max_'+ col + str(month) + '_months',
sf.greatest( *[sf.col(col + ult_pats2[month_ix - ix]) for ix in range(month)] ) )
0
ecan
21 Авг 2019 в 07:17
Это похоже на переписывание функции max другим пакетом. Пытаться:
import pyspark.sql.functions as f
А затем используйте ссылку f.max(...)
0
mrjoseph
29 Май 2019 в 17:45
Новые вопросы
pyspark
Spark Python API (PySpark) предоставляет Python модель программирования apache-spark.