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
如何在Azure HDInsight上设置Spark中的拼花块尺寸?_Azure_Apache Spark_Pyspark_Parquet_Azure Hdinsight - Fatal编程技术网

如何在Azure HDInsight上设置Spark中的拼花块尺寸?

如何在Azure HDInsight上设置Spark中的拼花块尺寸?,azure,apache-spark,pyspark,parquet,azure-hdinsight,Azure,Apache Spark,Pyspark,Parquet,Azure Hdinsight,我有大约3500个csv,我将其转换成按日期划分的拼花地板(此数据跨越7天)。我想设置拼花地板文件大小,使每个文件为1gb。目前我收到的文件太多(每天400-600个),大小在64到128 MB之间。我可以重新分区(使用重新分区/合并)为每个分区(每天)x个文件,但根据一天中存在的数据量,我仍然有不同的文件大小,因此第1天可能有20 gb,因此10个文件是2gb,但第2天有10 gb,因此每个文件是1gb。我正在研究如何设置/编码,使每个分区中的每个文件都是1gb。我正在使用pyspark,下面

我有大约3500个csv,我将其转换成按日期划分的拼花地板(此数据跨越7天)。我想设置拼花地板文件大小,使每个文件为1gb。目前我收到的文件太多(每天400-600个),大小在64到128 MB之间。我可以重新分区(使用重新分区/合并)为每个分区(每天)x个文件,但根据一天中存在的数据量,我仍然有不同的文件大小,因此第1天可能有20 gb,因此10个文件是2gb,但第2天有10 gb,因此每个文件是1gb。我正在研究如何设置/编码,使每个分区中的每个文件都是1gb。我正在使用pyspark,下面是我用来编写拼花地板文件的代码

csv_reader_df.write.partitionBy("DateId").option("compression","snappy").parquet('hdfs://mycluster/home/sshuser/snappy_data.parquet')

拼花写手将做一个文件,每个火花分区。 您必须重新分区或合并以管理文件的数量

val PARQUET_BLOCK_SIZE: Int = 32 * 1024 * 1024
val targetNbFiles: Int = 20
csv_reader_df.coalesce(targetNbFiles).write.option("parquet.block.size",PARQUET_BLOCK_SIZE).partitionBy("DateId").option("compression","snappy").parquet('hdfs://mycluster/home/sshuser/snappy_data.parquet')

参考spark文档:

可以在SparkSession上使用setConf方法或使用SQL运行SET key=value命令来配置拼花地板

所以你可以通过这个设置
parquet.block.size