以下是一些示例数据:
new_data = [{'name': 'Tom', 'subject': "maths", 'exam_score': 85},
{'name': 'Tom', 'subject': "science", 'exam_score': 55},
{'name': 'Tom', 'subject': "history", 'exam_score': 68},
{'name': 'Ivy', 'subject': "maths", 'exam_score': 72},
{'name': 'Ivy', 'subject': "science", 'exam_score': 67},
{'name': 'Ivy', 'subject': "history", 'exam_score': 59},
{'name': 'Ben', 'subject': "maths", 'exam_score': 56},
{'name': 'Ben', 'subject': "science", 'exam_score': 51},
{'name': 'Ben', 'subject': "history", 'exam_score': 63},
{'name': 'Eve', 'subject': "maths", 'exam_score': 74},
{'name': 'Eve', 'subject': "maths", 'exam_score': 87},
{'name': 'Eve', 'subject': "maths", 'exam_score': 90}]
new_rdd = sc.parallelize(new_data)
如果一名学生的分数在60分或更高,就可以通过考试.
我想返回一个Spark RDD,它有name
名学生,后面跟着他们通过的考试数量(应该是一个介于1和3之间的数字)?
我想我得在这里用groupByKey()
和map()
吧?
预期输出应如下所示:
# [('Tom', 2),
# ('Ivy', 2),
# ('Ben', 1),
# ('Eve', 3)]