我有一个名为test.parquet
的镶木地板文件。它包含一些整数。当我使用以下代码阅读它时:
val df = spark.read.parquet("test.parquet")
df.show(false)
+---+
|id |
+---+
|11 |
|12 |
|13 |
|14 |
|15 |
|16 |
|17 |
|18 |
|19 |
+---+
在日志中显示已执行的2个作业。它们如下:
一个是parquet
工作,另一个是show
工作。然而,当我使用以下代码阅读镶木地板文件时:
val df = spark.read.schema(StructType(List(StructField("id",LongType,false)))).parquet("test.parquet")
df.show(false)
+---+
|id |
+---+
|11 |
|12 |
|13 |
|14 |
|15 |
|16 |
|17 |
|18 |
|19 |
+---+
只执行一项工作,即show
:
所以,我的问题是:
答案 0 :(得分:3)
Spark两次读取文件。 1-发展架构 2-创建dataFrame
生成架构后,将创建快速的dataFrame。