基于一列将 pyspark.sql dataFrame 拆分为多个表



给定一个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

是否可以根据名称列(充当索引(将表拆分为两个表,并将两个表嵌套在同一对象下(不确定要使用的确切术语(。所以在上面的例子中,表[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]

最新更新