dataframe怎么按行求和_对dataframe中的列求和并返回结果,如中所示

本文通过示例介绍了在Spark中如何对DataFrame进行行求和操作,讲解了DataFrame的Schema与数据打印的区别,并展示了如何使用groupby和agg函数进行数据聚合,最后讨论了如何将结果转换为Python数据结构。
摘要由CSDN通过智能技术生成

使用spark时,需要理解其execution process和{}(pyspark - http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html)。它与pandas/python执行完全不同。它的执行取决于lazy evaluation,每当您需要检查数据时,您都需要执行一个操作,如show、first、collect或{}。如果没有这些操作,它将在dataframe上返回schema(所以在您的问题中)。在

我来给你介绍一些示例:-在process_df = sqlContext.createDataFrame([

['2013-01-01','U2_P1','p@c.com','100','P_P'],

['2013-01-01','U2_P2','p@c.com','100','P_P1'],

['2014-01-01','U2_P1','p@c.com','100','P_P'],

['2014-01-01','U2_P2','p@c.com','100','P_P1'],

['2015-01-01','U2_P1','p@c.com','100','P_P'],

['2015-01-01','U2_P2','p@c.com','100','P_P1']

], ['date','p1id','p2id','amount','p3id'])

#This prints Schema instead of Data

print process_df

DataFrame[date: string, p1id: string, p2id: string, amount: string, p3id: string]

#This prints data instead of schema

process_df.show()

+ + -+ -+ + +

| date| p1id| p2id|amount|p3id|

+ + -+ -+ + +

|2013-01-01|U2_P1|p@c.com| 100| P_P|

|2013-01-01|U2_P2|p@c.com| 100|P_P1|

|2014-01-01|U2_P1|p@c.com| 100| P_P|

|2014-01-01|U2_P2|p@c.com| 100|P_P1|

|2015-01-01|U2_P1|p@c.com| 100| P_P|

|2015-01-01|U2_P2|p@c.com| 100|P_P1|

+ + -+ -+ + +

agg_data = process_df.groupby(['date']).agg({'amount':'sum'})

#This prints Schema instead of Data

print agg_data

DataFrame[date: string, sum(amount): double]

from pyspark.sql import functions as F

#This prints data instead of schema

agg_data.show()

+ + -+

| date|sum(amount)|

+ + -+

|2015-01-01| 200.0|

|2014-01-01| 200.0|

|2013-01-01| 200.0|

+ + -+

from pyspark.sql import functions as F

agg_data.select('date', F.col('sum(amount)').alias('sum')).show()

+ + -+

| date| sum|

+ + -+

|2015-01-01|200.0|

|2014-01-01|200.0|

|2013-01-01|200.0|

+ + -+This is an example to print only data if you need to take this data in

python then need to use collect, take, first, head. Here are a few

examples:-

^{pr2}$

This is how we can take data to python and can wrangle over it.Hope this will help a lot.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值