mapPartitionsWithIndex查看分区内的前2条数据
# 只能用yeild,如果使用return将返回结果进行字符拆分,原因还不清楚。
from pyspark.sql import SparkSession,Row spark = SparkSession.builder.appName("get_app_category").enableHiveSupport().\ config("spark.driver.host", "localhost").config("spark.debug.maxToStringFields", "100").getOrCreate() df = spark.createDataFrame([('数学', '张三', 88), ('语文', '张三', 92), ('英语', '张三', 77), ('数学', '王五', 65), ('语文', '王五', 87), ('英语', '王五', 90), ('数学', '李雷', 67), ('语文', '李雷', 33), ('英语', '李雷', 24), ('数学', '宫九', 77), ('语文', '宫九', 87), ('英语', '宫九', 90) ], ['cat', 'name', 'score']) def f(idx,iter): nums =[] for i in iter: nums.append(i) if len(nums)==2: break yield str(idx) + '---' + str(nums) res = df.rdd.mapPartitionsWithIndex(f).collect() print(res)