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
Apache spark 有没有一种更系统的方法来解决AWS胶水的问题+;Pypark执行阶段?_Apache Spark_Pyspark_Aws Glue_Aws Glue Spark_Spark Ui - Fatal编程技术网

Apache spark 有没有一种更系统的方法来解决AWS胶水的问题+;Pypark执行阶段?

Apache spark 有没有一种更系统的方法来解决AWS胶水的问题+;Pypark执行阶段?,apache-spark,pyspark,aws-glue,aws-glue-spark,spark-ui,Apache Spark,Pyspark,Aws Glue,Aws Glue Spark,Spark Ui,我有一个代码片段,我在本地以独立模式运行,仅使用100条记录: from awsglue.context import GlueContext glue_context = GlueContext(sc) glue_df = glue_context.create_dynamic_frame.from_catalog(database=db, table_name=table) df = glue_df.toDF() print(df.count()) 架构包含89列,所有列都具有string

我有一个代码片段,我在本地以独立模式运行,仅使用100条记录:

from awsglue.context import GlueContext
glue_context = GlueContext(sc)
glue_df = glue_context.create_dynamic_frame.from_catalog(database=db, table_name=table)
df = glue_df.toDF()
print(df.count())
架构包含89列,所有列都具有string数据类型,只有5列具有struct数据类型数组。数据大小为3.1 MB

此外,以下是有关用于运行代码的环境的一些信息:

  • spark.executor.cores:2个
  • spark.executor.id:驱动程序
  • spark.driver.memory:1000M
问题是我不明白为什么第一阶段只用了12分钟就完成了,而它只需要数100条记录。我找不到“扫描拼花地板”和“交换”任务的含义,如图所示:


我的问题是,是否有更系统的方法来理解这些任务的含义。作为一个初学者,我非常依赖Spark UI,但它并没有提供太多关于它执行的任务的信息。我能够找到哪个任务花费的时间最多,但我不知道为什么会这样,也不知道如何系统地解决它。

spark代码中的运行时间是根据群集启动时间、DAG调度程序优化时间、运行阶段时间计算的。在您的情况下,问题可能是因为以下原因:

  • 拼花地板文件的数量。要测试这一点,请轻松阅读表格并将其作为一个拼花文件写回。您正在调用一个表,但在幕后,它正在读取物理实木拼合文件,因此文件的数量是一个要考虑的项目。
  • 火花团的数量。集群的数量应该是您拥有的计算资源的相关数量。例如,在您的例子中,您有两个核心和一个小尺寸的表。因此,只有几个分区比默认分区号200更有效。
要获得有关火花阶段的更多说明,请使用
explain
函数并读取DAG结果。通过此功能,您可以查看并比较内部优化程序流程计算的
分析的逻辑计划
优化的逻辑计划
,以及
物理计划



要查找
explain
功能的更详细说明,请访问此

您的第一个建议修复程序非常有效。执行时间从12分钟缩短到了几秒钟。我已将拼花地板文件合并为一个文件,以便更快地进行本地测试。另外,感谢您启动解释功能。我会试试这个。