Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何控制Spark SQL查询的输出文件数?_Sql_Apache Spark_Apache Spark Sql - Fatal编程技术网

如何控制Spark SQL查询的输出文件数?

如何控制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)

从sparksqlselect创建一个表,我们最终会生成太多的文件。如何限制它们?

从spark 2.4开始,您可以提示查询以控制输出:

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;
但这可能会影响流程性能


这里有更多信息

这是什么?博客?这是下次我需要的时候找到它的一种方式。很高兴知道。干杯