如何控制Spark SQL查询的输出文件数?
从sparksqlselect创建一个表,我们最终会生成太多的文件。如何限制它们?从spark 2.4开始,您可以提示查询以控制输出:如何控制Spark SQL查询的输出文件数?,sql,apache-spark,apache-spark-sql,Sql,Apache Spark,Apache Spark Sql,从sparksqlselect创建一个表,我们最终会生成太多的文件。如何限制它们?从spark 2.4开始,您可以提示查询以控制输出: INSERT ... SELECT /*+ COALESCE(numPartitions) */ ... INSERT ... SELECT /*+ REPARTITION(numPartitions) */ ... 例如,这将生成5个文件: CREATE TABLE business.clients AS SELECT /*+ REPARTITION(5)
INSERT ... SELECT /*+ COALESCE(numPartitions) */ ...
INSERT ... SELECT /*+ REPARTITION(numPartitions) */ ...
例如,这将生成5个文件:
CREATE TABLE business.clients
AS
SELECT /*+ REPARTITION(5) */
client_id,
country,
wallet
FROM business.users;
在Spark 2.4之前,一种方法是限制整个查询的分区数:
SET spark.sql.shuffle.partitions = 5;
但这可能会影响流程性能
这里有更多信息这是什么?博客?这是下次我需要的时候找到它的一种方式。很高兴知道。干杯