Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Dataframe 读取数据帧时使用的分区器与它持久化到HDFS的分区器相同_Dataframe_Apache Spark_Bucket_Checkpoint - Fatal编程技术网

Dataframe 读取数据帧时使用的分区器与它持久化到HDFS的分区器相同

Dataframe 读取数据帧时使用的分区器与它持久化到HDFS的分区器相同,dataframe,apache-spark,bucket,checkpoint,Dataframe,Apache Spark,Bucket,Checkpoint,我有一个通用的spark 2.3工作,它执行许多转换和连接,并生成一个巨大的dag。 随着dag变得非常复杂,这对驾驶员侧产生了很大的影响 为了释放对驱动程序的压力,我考虑过检查一些中间数据帧以剪切dag,但我注意到dataframe.checkpoint下面使用了RDD,它花费了很多时间序列化和反序列化数据帧 根据这一点和我的经验,将数据帧写入拼花地板并读回比检查点更快,但它有一个缺点。Dataframe将丢失分区器 是否有任何方法可以写入和读取数据帧并保留分区器?我在写数据帧时使用了buck

我有一个通用的spark 2.3工作,它执行许多转换和连接,并生成一个巨大的dag。 随着dag变得非常复杂,这对驾驶员侧产生了很大的影响

为了释放对驱动程序的压力,我考虑过检查一些中间数据帧以剪切dag,但我注意到dataframe.checkpoint下面使用了RDD,它花费了很多时间序列化和反序列化数据帧

根据这一点和我的经验,将数据帧写入拼花地板并读回比检查点更快,但它有一个缺点。Dataframe将丢失分区器

是否有任何方法可以写入和读取数据帧并保留分区器?我在写数据帧时使用了bucket,这样当数据帧被读回时,它就知道了数据分区。 问题是,我如何知道dataframe作为分区器具有哪些列? 我正在运行的Spark作业有点通用,所以我不能硬编码列


谢谢

那么你对驾驶员释放压力是什么意思?当dag非常大时,驾驶员似乎花费了太多时间分析和优化执行计划。当这一切发生时,遗嘱执行人什么也不做。在其中一个例子中,我注意到,在执行者有一些工作要做之前,它可以像那样保持20分钟,如果我坚持并读回一些中间数据帧,以减少“执行者什么都不做”的dag时间不多了我也注意到了这类事情,但很少有人对此进行讨论。问题是,虽然我已经注意到性能有了巨大的提高,但我想再深入一点,看看是否可以以某种方式保留分区器以避免额外的混乱(有时下一次转换是与另一个具有相同分区器的表连接)这是我不久前研究过的一个领域,但我希望自己能更好地理解它。这是一个奇怪的故事,让我们看看谁会回答。在Spark 3中,情况也有点不同。那么,释放驾驶员压力是什么意思呢?当dag非常大时,驾驶员似乎花费了太多时间分析和优化执行计划。当这一切发生时,遗嘱执行人什么也不做。在其中一个例子中,我注意到,在执行者有一些工作要做之前,它可以像那样保持20分钟,如果我坚持并读回一些中间数据帧,以减少“执行者什么都不做”的dag时间不多了我也注意到了这类事情,但很少有人对此进行讨论。问题是,虽然我已经注意到性能有了巨大的提高,但我想再深入一点,看看是否可以以某种方式保留分区器以避免额外的混乱(有时下一次转换是与另一个具有相同分区器的表连接)这是我不久前研究过的一个领域,但我希望自己能更好地理解它。这是一个奇怪的故事,让我们看看谁会回答。在Spark 3中,情况也有点不同。