我正在使用--conf spark.sql.shuffle.partitions=100
内部应用程序中,我具有以下内容
Dataset<Row> df_partitioned = df.repartition(df.col("enriched_usr_id"));
df_partitioned = df_partitioned.sortWithinPartitions(df_partitioned.col("transaction_ts"));
df_partitioned.mapPartitions(
SparkFunctionImpl.mapExecuteUserLogic(), Encoders.bean(Transformed.class));
我大约有500万用户,我想为每个用户排序数据并为每个用户执行一些逻辑。
我的问题是,这会将数据划分为500万个分区还是100个分区?每个用户的执行方式如何?
答案 0 :(得分:0)
df.repartition(df.col("enriched_usr_id"))
将使用riched_usr_id将数据划分为100个分区(spark.sql.shuffle.partitions
),这意味着多个用户将位于同一分区中。