Spark SQL запускает неодинаковое количество заданий для идентичных запросов - PullRequest
4 голосов
/ 16 апреля 2020

У меня есть две таблицы finance.movies и finance.dummytable_3.

  • Оба были созданы с использованием Spark SQL, и их метаинформация одинакова
  • Оба имеют два файла
  • Общий размер файла finance. Фильмы - 312363 , в то время как finance.dummytable_3 - 1209
  • Но когда я выполняю простое "select *" для обеих таблиц, finance.dummytable_3, чей общий файл меньше размер выполнить 2 задания , в то время как finance.movies выполняет только одно задание . Снимок экрана:
hive> describe formatted finance.movies;
OK
# col_name              data_type               comment

movieid                 int
title_movie             string
genres                  string

# Detailed Table Information
Database:               finance
Owner:                  root
CreateTime:             Thu Apr 16 02:18:51 EDT 2020
LastAccessTime:         UNKNOWN
Protect Mode:           None
Retention:              0
Location:               hdfs://test.com:8020/GenNext_Finance_DL/Finance.db/movies
Table Type:             MANAGED_TABLE
Table Parameters:
        numFiles                2
        spark.sql.create.version        2.3.0.2.6.5.0-292
        spark.sql.sources.provider      parquet
        spark.sql.sources.schema.numParts       1
        spark.sql.sources.schema.part.0 {\"type\":\"struct\",\"fields\":[{\"name\":\"movieid\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}},{\"name\":\"title_movie\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"genres\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}}]}
        totalSize               312363
        transient_lastDdlTime   1587017931

# Storage Information
SerDe Library:          org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
InputFormat:            org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:
        path                    hdfs://test.com:8020/GenNext_Finance_DL/Finance.db/movies
        serialization.format    1
Time taken: 3.877 seconds, Fetched: 35 row(s)
hive> describe formatted finance.dummytable_3;
OK
# col_name              data_type               comment

colname1                string
colname2                string
colname3                string

# Detailed Table Information
Database:               finance
Owner:                  root
CreateTime:             Wed Apr 15 02:40:18 EDT 2020
LastAccessTime:         UNKNOWN
Protect Mode:           None
Retention:              0
Location:               hdfs://test.com:8020/GenNext_Finance_DL/Finance.db/dummytable_3
Table Type:             MANAGED_TABLE
Table Parameters:
        numFiles                2
        spark.sql.create.version        2.3.0.2.6.5.0-292
        spark.sql.sources.provider      parquet
        spark.sql.sources.schema.numParts       1
        spark.sql.sources.schema.part.0 {\"type\":\"struct\",\"fields\":[{\"name\":\"colName1\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"colName2\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"colName3\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}}]}
        totalSize               1209
        transient_lastDdlTime   1586932818

# Storage Information
SerDe Library:          org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
InputFormat:            org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:
        path                    hdfs://test.com:8020/GenNext_Finance_DL/Finance.db/dummytable_3
        serialization.format    1
Time taken: 0.373 seconds, Fetched: 35 row(s)

При выполнении следующего запроса количество выполняемых заданий составляет 2

spark-sql --master yarn --name spark_load_test -e "select * from finance.dummytable_3 limit 2;"

enter image description here

Когда я выполняю следующий запрос, количество выполняемых заданий равно единице. Несмотря на то, что обе таблицы имеют два файла и идентичную структуру.

spark-sql --master yarn --name spark_load_test -e "select * from finance.movies limit 2;"

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...