此问题与通过从Hive表读取数据创建的spark数据帧的分区数相同
但我认为这个问题得不到正确答案.请注意,问题是当使用SparkSession.sql方法对HIVE表执行sql查询而创建数据帧时,将询问将创建多少个分区.
IIUC,上面的问题不同于在执行某些代码时创建数据帧时会创建多少个分区,这些代码spark.read.json("examples/src/main/resources/people.json")直接从文件系统加载数据 - 可能是HDFS.我认为后一个问题的答案是由spark.sql.files.maxPartitionBytes给出的
spark.sql.files.maxPartitionBytes 134217728(128 MB)读取文件时打包到单个分区的最大字节数.
在实验上,我尝试从HIVE表创建一个数据帧,并且没有解释我得到的分区数 total data in hive table / spark.sql.files.maxPartitionBytes
同时添加到OP,最好知道如何控制分区的数量,即,当一个人想要强制使用与默认情况下不同的数字时使用火花.
参考文献: