Scala Spark数据帧分区器为“无”
[新火花] 在创建了一个数据帧之后,我试图根据数据帧中的一列对其进行分区。当我使用Scala Spark数据帧分区器为“无”,scala,apache-spark,Scala,Apache Spark,[新火花] 在创建了一个数据帧之后,我试图根据数据帧中的一列对其进行分区。当我使用data\u frame.rdd.partitioner检查分区器时,我没有得到任何输出 使用-> data_frame.repartition("column_name") 根据Spark文档,默认分区器是HashPartitioner,我如何确认这一点 另外,如何更改分区器?这是意料之中的RDD从数据集转换而来,只有数据分布 如果要检查RDD的分区器,应该从查询执行中检索它: scala> val df
data\u frame.rdd.partitioner
检查分区器时,我没有得到任何输出
使用->
data_frame.repartition("column_name")
根据Spark文档,默认分区器是HashPartitioner,我如何确认这一点
另外,如何更改分区器?这是意料之中的<代码>RDD从
数据集
转换而来,只有数据分布
如果要检查RDD的分区器,应该从查询执行
中检索它:
scala> val df = spark.range(100).select($"id" % 3 as "id").repartition(42, $"id")
df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: bigint]
scala> df.queryExecution.toRdd.partitioner
res1: Option[org.apache.spark.Partitioner] = Some(org.apache.spark.sql.execution.CoalescedPartitioner@4be2340e)
如何更改分区器
一般来说,你不能。存在repartitionByRange
方法(请参阅链接的线程),但在其他情况下,Dataset
Partitioner
是不可配置的