круглые результаты в сводных таблицах результатов (pyspark) - PullRequest
3 голосов
/ 30 октября 2019

Здравствуйте, как бы я округлил это содержимое таблицы, выведенной этим кодом.

from pyspark.sql.functions import *
exprs = {x: "sum" for x in data2.columns[:4]}
data2.groupBy("Species").agg(exprs).show() 

res Я пробовал

round(data2.groupBy("Species").agg(exprs),2).show() #not ok

data2.groupBy("Species").agg(exprs).show().round(2) # not ok

1 Ответ

4 голосов
/ 30 октября 2019

раунд работает только на один столбец. Поэтому вы должны вызывать его для каждого столбца, например,

agg_cols = data2.columns[:4]
exprs = [sum(col(x)).alias(x) for x in agg_cols]
aggregated_df = data2.groupBy("Species").agg(*exprs)
aggregated_df.select(col("Species"), *[round(c, 2) for c in agg_cols]).show() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...