Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 从Spark limit()函数重新划分数据帧_Apache Spark_Time_Pyspark - Fatal编程技术网

Apache spark 从Spark limit()函数重新划分数据帧

Apache spark 从Spark limit()函数重新划分数据帧,apache-spark,time,pyspark,Apache Spark,Time,Pyspark,我需要使用limit函数从数据帧中获取n个条目/行。我知道这是不可取的,但这是一个预处理步骤,在实际实现代码时不需要它。然而,我在别处读到,使用limit函数得到的数据帧只有一个分区 我想测量我的工作的处理时间,这不应该受到限制。实际上,我尝试过重新分区,但性能改进很小(如果有的话)。我通过打印出df.rdd.getNumPartitions()来检查分区,它仍然是1。有没有办法强制重新划分 编辑:注意getNumPartitions()是在count操作之后运行的 EDIT2:示例代码 df

我需要使用
limit
函数从数据帧中获取n个条目/行。我知道这是不可取的,但这是一个预处理步骤,在实际实现代码时不需要它。然而,我在别处读到,使用limit函数得到的数据帧只有一个分区

我想测量我的工作的处理时间,这不应该受到限制。实际上,我尝试过重新分区,但性能改进很小(如果有的话)。我通过打印出
df.rdd.getNumPartitions()
来检查分区,它仍然是
1
。有没有办法强制重新划分

编辑:注意
getNumPartitions()
是在
count
操作之后运行的

EDIT2:示例代码

df = random_data.groupBy("col").count().sort(F.desc("count")).limit(100).repartition(10)
df.count()
print("No. of partitions: {0}".format(df.rdd.getNumPartitions())) # Prints 1
调用
cache()
然后调用
count()
成功


我认为Spark的延迟计算出于某种原因没有执行重新分区,但我不确定为什么,因为
count
应该是一个动作。

我使用Spark 2.2,并且我能够在
限制后重新分区数据。你能分享一下示例代码吗?@AyushVatsyayan:嗨,我已经用示例代码更新了我的问题。秒的
df.count()
的输出是什么line@AyushVatsyayan:我没有打印出
count()
的输出。