【发布时间】:2020-10-07 15:42:51
【问题描述】:
使用df.rdd.getNumPartitions(),我们可以得到分区的数量。但是我们如何获得分区呢?
我还尝试从文档和数据框的所有属性(使用dir(df))中获取一些信息。但是,我找不到任何可以提供分区的 API,我只能找到 repartitioning、coalesce、getNumPartitions。
我阅读了this 并推断出 Spark 不知道分区键。我的疑问是,如果它不知道分区键,因此不知道分区,它怎么知道它们的计数?如果可以,如何确定分区?
【问题讨论】:
-
确定分区是什么意思?内容、方法?分区号?
-
很抱歉无法为您提供准确的答案。 “分区”是指数据被分区的文件夹。例如,created_month * 12 个文件夹,每个文件夹包含 created_day * 30 个(几乎)文件夹,然后将文件存储在每个
day文件夹中。有意义吗? -
不,因为数据帧在内存中,可能会被驱逐到磁盘,但听起来你的意思是当数据帧写入磁盘时。那是静止的数据,确实不同。
-
我对您阅读的数据和您期望的结果感到困惑。你能澄清一下吗?您可以使用 partitions() 方法获取分区,如:spark.apache.org/docs/latest/api/java/org/apache/spark/rdd/…
-
@jpg 当我输入
df.rdd.partitions时,我得到:AttributeError: 'RDD' object has no attribute 'partitions'
标签: python apache-spark pyspark