Hive 通过从配置单元表读取数据创建的spark数据帧的分区数

Hive 通过从配置单元表读取数据创建的spark数据帧的分区数,hive,apache-spark-sql,Hive,Apache Spark Sql,我对spark数据帧分区数有疑问 如果我有一个配置单元表(employee),其中有列(名称、年龄、id、位置) CREATE表employee(名称字符串、年龄字符串、id Int)由(位置字符串)分区 如果employee表有10个不同的位置。因此,数据将在HDFS中划分为10个分区 如果我通过读取配置单元表(employee)的全部数据来创建Spark数据帧(df) Spark将为一个数据帧(df)创建多少个分区 df.rdd.partitions.size=??根据HDF的块大小创建分区

我对spark数据帧分区数有疑问

如果我有一个配置单元表(employee),其中有列(名称、年龄、id、位置)

CREATE表employee(名称字符串、年龄字符串、id Int)由(位置字符串)分区

如果employee表有10个不同的位置。因此,数据将在HDFS中划分为10个分区

如果我通过读取配置单元表(employee)的全部数据来创建Spark数据帧(df)

Spark将为一个数据帧(df)创建多少个分区


df.rdd.partitions.size=??

根据HDF的块大小创建分区

假设您已将10个分区作为单个RDD读取,如果块大小为128MB,则

分区数=(10个分区的大小(以MB为单位))/128MB

将存储在HDFS上

请参阅以下链接:


是的,我知道如果HDFS中的文件块数为10块(例如,如果HDFS中的块大小为64MB,而文件大小为640MB)。在这种情况下,通过从HDFS读取此文件来创建Spark rdd。Spark rdd将有10个分区,但我说的是由一列分区的配置单元表。这会是Spark决定通过读取配置单元表创建的数据帧的分区数的驱动因素吗?我不认为这个答案总是正确的,因为当我使用配置单元外部表创建数据帧时,分区数是119。该表是一个配置单元分区表,其中包含150个partfiles,文件的最小大小为30 mb,最大大小为118 mb,这个答案可能更完整