2016-06-10 3 views
1

В этой части кода из Spark Programming Guide,Ленивый оценки в SparkSQL

# 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 (как память Спарк управляемом), когда каждая линия выполнена?

У меня есть эти вопросы специально

  1. ли sqlContext.read.parquet ленивым? Из-за того, что весь файл паркета загружается в память?
  2. Когда выполняется действие по сбору, для применения SQL-запроса,

    a. представляет собой весь паркет, сначала сохраненный как RDD, а затем обработанный или

    b. это файл паркета, обработанный сначала, чтобы выбрать только столбец name, затем сохранен как RDD, а затем отфильтрован на основе условия age от Spark?

ответ

-1

ли sqlContext.read.parquet ленивым?

Да, по умолчанию все преобразования в искре ленивы.

Когда Collect действие выполняется для запроса SQL для применения

а. представляет собой весь паркет, сначала сохраненный как RDD, а затем обработанный или

b. это файл паркета, обработанный сначала, чтобы выбрать только столбец имен, затем сохранен как RDD, а затем отфильтрован на основе возрастного состояния Spark?

На каждом искрообразовании возникает новое RDD. Также паркет представляет собой столбчатый формат, для считывателей Parquet используются push-down фильтры для дальнейшего уменьшения дискового ввода-вывода. Push-down фильтры позволяют принимать решения о раннем выборе данных до того, как данные даже считываются в Spark. Таким образом, только часть файла будет загружена в память.

+1

Операции DataFrameReader в целом не ленивы. Они требуют либо метаданных, либо доступа к данным в зависимости от источника. – zero323

+0

просьба указать ссылку для вашего комментария –

+3

Ссылка находится в источнике кода DataFrame @atulgupta – eliasah

Смежные вопросы