繁体   English   中英

根据一列将pyspark.sql dataFrame拆分为多个表

[英]split a pyspark.sql dataFrame into multiple tables based on one column

给定pyspark.sql.dataframe.DataFrame x: name day earnings revenue Oliver 1 100 44 Oliver 2 200 69 John 1 144 11 John 2 415 54 John 3 33 10 John 4 82 82 1144 name day earnings revenue Oliver 1 100 44 Oliver 2 200 69 John 1 144 11 John 2 415 54 John 3 33 10 John 4 82 82 333 name day earnings revenue Oliver 1 100 44 Oliver 2 200 69 John 1 144 11 John 2 415 54 John 3 33 10 John 4 82 82

是否可以根据名称列(充当索引)将表拆分为两个表,并将两个表嵌套在同一对象下(不确定要使用的确切术语)。 因此,在上面的示例中,表[0]将为: name day earnings revenue Oliver 1 100 44 Oliver 2 200 69

表格[1]将为: name day earnings revenue John 1 144 11 John 2 415 54 John 3 33 10 John 4 82 82

请注意,每个“子表”中的行数可能会有所不同。

我尝试了以下操作: dict(tuple(x.groupby('name')))可以很好地与Pandas数据帧配合使用,但是当我尝试在pyspark.sql数据帧上执行相同操作时,出现错误: TypeError: 'GroupedData' object is not iterable

任何帮助,将不胜感激。

干杯,

你可以这样走

uniq_names = [x.asDict().values()[0] for x in df.select("name").distinct().collect()]
tables = [df.where(df.name == x) for x in uniq_names]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM