как создать новый столбец путем вычисления суммы столбца и деления на константу - pyspark - PullRequest
0 голосов
/ 06 апреля 2020

Мне нужно создать фрейм данных, соединив два других фрейма данных. В новом фрейме данных я создаю новый столбец, вычисляя sum(Col1) и деля его на число, которое я пробую ниже кодов, ни один из них не работает.

Как мы справляемся с делением столбца на константу в pyspark

Try 1:

 df = df2.join(df1,cond,'inner).df1.groupby('category').withColumn('Amt', 
 (sum(df1('Col1'))/ 100))\
.withColumn('Amt1',(sum(df1(Col2))/ 100))\
.withColumn('Amt2',(sum(df1(Col3))/ 100))\

Try2:

(df1.agg(sum('Col1')))/lit(100)

Try3:

(df1.agg(sum('Col1')).div(100))

Отображаемая ошибка:

Попытка 3: AttributeError: у объекта «DataFrame» нет атрибута «div» Попытка 1 и 2: TypeError: неподдерживаемые типы операндов для /: 'DataFrame' и 'int'

1 Ответ

0 голосов
/ 06 апреля 2020

Вы должны использовать agg. Для указания правильного имени столбца вы можете использовать alias:

df = df2.join(df1,cond,'inner').df1.groupby('category').agg( 
 (sum(df1('Col1'))/ 100).alias("Amt"),
 (sum(df1('Col2'))/ 100).alias("Amt1"),
 (sum(df1("Col3"))/ 100).alias("Amt2")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...