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中的长血统(DAG)问题_Apache Spark_Databricks_Directed Acyclic Graphs - Fatal编程技术网

Apache spark Spark中的长血统(DAG)问题

Apache spark Spark中的长血统(DAG)问题,apache-spark,databricks,directed-acyclic-graphs,Apache Spark,Databricks,Directed Acyclic Graphs,我们通常使用Spark作为存储在S3或HDFS上的数据处理引擎。我们使用Databricks和EMR平台。 我经常面临的问题之一是,当任务规模增大时,工作绩效会严重下降。例如,假设我从五个具有不同转换级别(过滤、分解、联接等)的表中读取数据,并从这些转换中合并数据子集,然后进行进一步处理(例如,根据需要窗口函数等的条件删除一些行)然后是其他一些处理阶段,最后将最终输出保存到目标s3路径。如果我们不运行此作业,则需要很长时间。但是,如果我们将(stage)临时中间数据帧保存到S3,并将此保存的(在

我们通常使用Spark作为存储在S3或HDFS上的数据处理引擎。我们使用Databricks和EMR平台。 我经常面临的问题之一是,当任务规模增大时,工作绩效会严重下降。例如,假设我从五个具有不同转换级别(过滤、分解、联接等)的表中读取数据,并从这些转换中合并数据子集,然后进行进一步处理(例如,根据需要窗口函数等的条件删除一些行)然后是其他一些处理阶段,最后将最终输出保存到目标s3路径。如果我们不运行此作业,则需要很长时间。但是,如果我们将(stage)临时中间数据帧保存到S3,并将此保存的(在S3上)数据帧用于接下来的查询步骤,则作业完成得更快。有没有人有类似的经历?除了检查点之外,还有更好的方法来处理这种长任务吗


更奇怪的是,对于更长的沿袭,spark抛出了一个预期的错误,如column not found,而如果中间结果被临时暂存,则相同的代码可以工作

通过保存数据帧或使用检查点写入中间数据是修复它的唯一方法。您可能遇到了优化器需要很长时间才能生成计划的问题。解决此问题的最快/最有效的方法是使用localCheckpoint。这在本地实现了一个检查点

val df = df.localCheckpoint()

通过保存数据帧或使用检查点写入中间数据是修复它的唯一方法。您可能遇到了优化器需要很长时间才能生成计划的问题。解决此问题的最快/最有效的方法是使用localCheckpoint。这在本地实现了一个检查点

val df = df.localCheckpoint()