【发布时间】:2020-04-06 14:51:00
【问题描述】:
我必须通过连接另外两个数据框来创建一个数据框
在新数据框中,我通过计算 sum(Col1) 并除以数字来创建一个新列
我正在尝试以下代码,它们都不起作用。
我们如何处理在 pyspark 中除以一列
尝试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))\
尝试2:
(df1.agg(sum('Col1')))/lit(100)
尝试3:
(df1.agg(sum('Col1')).div(100))
错误显示:
尝试 3:AttributeError: 'DataFrame' 对象没有属性 'div' 尝试 1 和 2 : TypeError: 不支持的操作数类型 /: 'DataFrame' 和 'int'
【问题讨论】:
-
你没有添加“错误显示”
-
如果不先使用 group by,添加带有聚合的列的目的是什么?我的意思是,您必须决定数据框中的哪些值必须计算总和,我怀疑您是否想要全部并将这个值添加到每一行。此外,如果您显示输入和预期输出样本数据,会容易得多。
-
我添加了错误信息和 grouby 子句
标签: apache-spark pyspark division pyspark-dataframes