在读取任何CSV时,无论CSV文件的大小还是大还是仅在文件中,它始终将其转换为3个阶段。而且总有三个工作每个工作一个阶段。我的应用程序没有任何转换和操作。它仅加载CSV。
公共班级WordCount {
public static void main(String[] args) throws InterruptedException {
SparkSession spark = SparkSession.builder().appName("Java Spark
Application").master("local").getOrCreate();
Dataset<Row> df = spark.read()
.format("com.databricks.spark.csv")
.option("inferschema", "true")
.option("header", "true")
.load("/home/ist/OtherCsv/EmptyCSV.csv");
spark.close();
}}
火花UI图像:
- Spark UI中的三个工作
- 阶段相关信息
- 这三个阶段都有相同的dag 可视化
- 所有三个工作都有相同的DAG 可视化
- 这是事件时间轴
问题:
- 为什么加载或读取CSV总是分为三个阶段和三个工作。
- 为什么没有任何操作,为什么它会转换为三个工作?
- 如何在代码级别形成阶段?
默认情况下CSV,JSON和PARQUET将创建2个作业,但是如果我们启用CSV文件的Inferschema,则它将创建3Jobs。