【发布时间】:2022-01-07 13:46:46
【问题描述】:
目前在 Databricks Interactive Cluster 上使用 PySpark(使用 Databricks-connect 提交作业)和 Snowflake 作为输入/输出数据。 p>
我的 Spark 应用程序应该从 Snowflake 读取数据,应用一些简单的 SQL 转换(主要是 F.when.otherwise,窄转换),然后将其加载回 Snowflake。 (仅供参考,架构已传递给雪花阅读器和编写器)
编辑:在过程结束时,在写入之前还有一个排序转换。
出于测试目的,我将我的工作命名为:(应该命名为 Writer 和 Reader)
sc.setJobDescription("Step Snowflake Reader")
我无法理解 Spark UI 显示的内容:
所以,我得到了 3 个工作,所有工作名称都相同(作家)。 我可以理解我只有一个 Spark Action,所以假设有一个作业,所以 Spark 确实将作业命名为 sc.setJobDescription 设置的最后一个值(读取器,触发 spark 计算)。
我也标记了我的“ReaderClass”
sc = spark.sparkContext
sc.setJobDescription("Step Snowflake Reader")
为什么不显示?
第一个作业是像“从雪花下载数据”,第二个“应用 SQL 转换”,然后是第三个“将数据上传到雪花”吗?
为什么我所有的工作都与同一个 SQL 查询相关? 什么是与 ... 零作业相关的查询 0?
【问题讨论】:
-
你使用了很多
withColumn吗? -
@Alex Ott 所有 SQL 转换都是使用“select(col_expression)”完成的。 (不是withColumn,但效果相同)一切都运行良好....输出数据集是我所期望的。我想了解我看到的不同作业是否对应于不同的步骤(读/转换/写)。如果不是,它们是什么。
标签: apache-spark pyspark snowflake-cloud-data-platform databricks spark-ui