我注意到当只有一个操作时,这一堆代码会启动三个任务。
from typing import List
from pyspark.sql import DataFrame
from pyspark.sql.types import StructType, StructField, StringType
from pyspark.sql.functions import avg
data: List = [("Diamant_1A", "TopDiamant", "300", "rouge"),
("Diamant_2B", "Diamants pour toujours", "45", "jaune"),
("Diamant_3C", "Mes diamants préférés", "78", "rouge"),
("Diamant_4D", "Diamants que j'aime", "90", "jaune"),
("Diamant_5E", "TopDiamant", "89", "bleu")
]
schema: StructType = StructType([ \
StructField("reference", StringType(), True), \
StructField("marque", StringType(), True), \
StructField("prix", StringType(), True), \
StructField("couleur", StringType(), True)
])
dataframe: DataFrame = spark.createDataFrame(data=data,schema=schema)
dataframe_filtree:DataFrame = dataframe.filter("prix > 50")
dataframe_filtree.show()
根据我的理解,我应该只得到一个。一个操作对应一个作业。 我正在使用Databricks。这可能是问题所在。我有两个问题:
- 为什么我有3个作业而不是1个?
- 我能改变这种行为吗?
![第一个dag](https://istack.dev59.com/xfYDe.webp)
![第二个作业的Dag](https://istack.dev59.com/LTHBM.webp)
![第三个作业的dag](https://istack.dev59.com/DdfHN.webp)
show()
,这可能会导致洗牌。如果删除分区会发生什么?分区的目的是什么? - ekrich