# The result of loading a parquet file is also a DataFrame.
parquetFile = sqlContext.read.parquet("people.parquet")
# Parquet files can also be registered as tables and then used in SQL statements.
parquetFile.registerTempTable("parquetFile");
teenagers = sqlContext.sql("SELECT name FROM parquetFile WHERE age >= 13 AND age <= 19")
teenagers.collect()
执行每一行时,Java堆中究竟发生了什么(Spark内存是如何管理的)?
我特意提出这些问题
执行collect操作时,对于要应用的SQL查询,
一个。是整个镶木地板首先存储为RDD然后处理或
湾首先处理镶木地板文件,只选择name
列,然后存储为RDD,然后根据Spark的age
条件进行过滤?
答案 0 :(得分:-1)
sqlContext.read.parquet是否懒惰?
是的,默认情况下,spark中的所有转换都是惰性的。
执行collect操作时,要应用SQL查询
一个。是整个镶木地板首先存储为RDD然后处理或
湾首先处理镶木地板文件,只选择名称列,然后存储为RDD,然后根据Spark的年龄条件进行过滤?
在每个动作上,spark都会生成新的RDD。 Parquet也是一种柱状格式,Parquet阅读器使用下推式滤波器来进一步减少磁盘IO。 下推式滤波器允许在将数据读入Spark之前做出早期数据选择决策。 因此,只有部分文件将被加载到内存中。