我可以分组大数据集,使多个csv,excel文件与Pandas数据框。但是如何对pysparkDataframe执行相同的操作,将700k条记录分组到大约230个组中,并使230个csv文件面向全国。
使用Pandas
grouped = df.groupby("country_code")
# run this to generate separate Excel files
for country_code, group in grouped:
group.to_excel(excel_writer=f"{country_code}.xlsx", sheet_name=country_code, index=False)
有了pyspark数据框,当我试着喜欢这个的时候-
for country_code, df_country in df.groupBy('country_code'):
print(country_code,df_country.show(1))
它回来了,
typeerror:“groupeddata”对象不可iterable
2条答案
按热度按时间j2datikz1#
使用
partitionBy
在编写时,使每个分区都基于指定的列(country_code
在你的情况下)。这里有更多的信息。
zpqajqem2#
如果您的要求是将所有国家/地区的数据保存在不同的文件中,您可以通过对数据进行分区来实现,但是您将获得每个国家/地区的文件夹,而不是文件,因为spark无法将数据直接保存到文件中。
每当调用Dataframe编写器时,spark就会创建文件夹。
输出将是带有相应国家数据的多个文件夹
如果希望每个文件夹中都有一个文件,可以将数据重新分区为