对于hive外部表,spark.table()并行性是错误设置的?

时间:2018-02-14 13:57:47

标签: apache-spark hive spark-dataframe rdd

我有一个我通过Spark的DataWriter界面创建的HIVE外部表。 它大约700GB,有大约5000个分区,每个分区中有50个桶。我正在使用Spark 2.2.1。

[Sort Columns,[`unique_id`],], [Bucket Columns,[`unique_id`],], [Num Buckets,50,], 
[Provider,parquet,],
[Type,EXTERNAL,]

这些是其他相关参数集:

spark.sql("SET spark.default.parallelism=1000")
spark.sql("set spark.sql.shuffle.partitions=500")
spark.sql("set spark.sql.files.maxPartitionBytes=134217728")

我没有更改HDFS块大小默认值。

$ hdfs getconf -confKey mapreduce.input.fileinputformat.split.minsize
0
$ hdfs getconf -confKey dfs.blocksize
134217728
$ hdfs getconf -confKey mapreduce.job.maps
32

现在,当我阅读此表时,它的RDD计数仅设置为50。

scala> spark.table("table1").rdd.partitions.size
res25: Int = 50

如何在此处增加并行度? 为什么没有能够找出来自Metastore的(水平)分区路径,并找出RDD的相应分区数,就像用普通实木复合地板一样?

0 个答案:

没有答案