想要将 pandas df 代码转换为 pyspark df 代码? [复制]
Posted
技术标签:
【中文标题】想要将 pandas df 代码转换为 pyspark df 代码? [复制]【英文标题】:Want to Convert pandas df code to pyspark df code? [duplicate] 【发布时间】:2020-03-24 15:06:06 【问题描述】:pandas df 代码是
Data = data[data['ObservationDate'] == max(data['ObservationDate'])].reset_index()
Data_world = Data.groupby(["ObservationDate"])["Confirmed","Active_case","Recovered","Deaths"].sum().reset_index()
Data_world
Dataframe 结构是这样的。
SNo ObservationDate Province/State Country/Region Last Update Confirmed Deaths Recovered Active_case
0 1 01/22/2020 Anhui China 1/22/2020 17:00 1 0 0 1
1 2 01/22/2020 Beijing China 1/22/2020 17:00 14 0 0 14
2 3 01/22/2020 Chongqing China 1/22/2020 17:00 6 0 0 6
3 4 01/22/2020 Fujian China 1/22/2020 17:00 1 0 0 1
4 5 01/22/2020 Gansu China 1/22/2020 17:00 0 0 0 0
想要这样的输出
ObservationDate Confirmed Active_case Recovered Deaths
0 03/22/2020 335957 223441 97882 14634
如何过滤最大日期?
max_date = df.select(max("ObservationDate")).first()
group_data = df.groupBy("ObservationDate")
group_data.agg('Confirmed':'sum', 'Deaths':'sum', 'Recovered':'sum', 'Active_case':'sum').show()
【问题讨论】:
到目前为止您尝试了什么,您的尝试出了什么问题? group_data = df.groupBy("ObservationDate") group_data.agg('Confirmed':'sum', 'Deaths':'sum', 'Recovered':'sum', 'Active_case' :'sum').show() 最好从业务案例而不是代码开始... 【参考方案1】:我想这就是你想要的。你可以先collect
你的max
日期,然后在groupBy
和aggregate.
之前在filter
中使用它
from pyspark.sql import functions as F
max_date=df.select(F.max("ObservationDate")).collect()[0][0]
df.filter(F.col("ObservationDate")==max_date)\
.groupBy("ObservationDate")\
.agg('Confirmed':'sum', 'Deaths':'sum', 'Recovered':'sum', 'Active_case':'sum')\
.show()
【讨论】:
以上是关于想要将 pandas df 代码转换为 pyspark df 代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 .str 和 .split 将 pandas 代码转换为 Pyspark
类型错误:将 BigQuery 转换为 pandas df 时的 from_arrays()