【发布时间】:2019-08-26 20:48:21
【问题描述】:
我正在使用 --conf spark.sql.shuffle.partitions=100 运行一个 spark 程序
在应用程序中我有以下内容
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 个分区,以及每个用户如何执行。
【问题讨论】:
-
spark.sql.shuffle.partitions用于决定涉及洗牌时的分区数量,即在连接期间等。
标签: java apache-spark dataframe apache-spark-sql