【发布时间】:2016-10-11 08:32:10
【问题描述】:
在Spark Programming Guide的这段代码中,
# 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 内存是如何管理的)?
我特别有这些问题
- sqlContext.read.parquet 是懒惰的吗?是否会导致整个 parquet 文件加载到内存中?
-
执行收集操作时,对于要应用的 SQL 查询,
一个。是整个parquet首先存储为RDD,然后处理或
b. parquet 文件是否首先处理为仅选择
name列,然后存储为 RDD,然后由 Spark 根据age条件进行过滤?
【问题讨论】:
标签: apache-spark apache-spark-sql lazy-evaluation