如果可能,在PySpark中进行Spark聚合,而无需进行任何改组操作

时间:2018-10-05 14:29:08

标签: python apache-spark aggregation

有没有办法我可以在pyspark中隐藏我的df,

df = sc.parallelize([
    ['Naman', True,200],
    ['Jason', True,100],
    ['Jason', False,200],
    ['Omar', True,100],
    ['Omar', False,200],
    ['Omar', True,200],
    ['Naman', False,200]
]).toDF(('emp_name', 'class','score'))

df.show()

如果可能的话,没有groupby,但是,它已经在唯一类和emp_name级别聚合,它只是我想创建一个额外的列并将emp_name行减少到唯一级别。

+--------+-----------+-----------+
|emp_name|class1Score|class2Score|
+--------+-----------+-----------+
|   Naman|        200|        200|
|   Jason|        100|        200|
|    Omar|        200|        200|
+--------+-----------+-----------+

1 个答案:

答案 0 :(得分:0)

除非数据已经被emp_name分区了(在您的情况下还没有,并且这样的分区将需要随机播放)或从emp_name存储桶的表中加载了数据(与之前)将数据重塑为所需格式,例如使用数据透视

df.groupBy("emp_name").pivot("class", [True, False]).sum()

需要洗牌。