如何在pySpark中加载一个大文件然后高效处理?
How to load a large file in pySpark and then process it efficiently?
我存储了一个大文件。我想在 Databricks (pyspark) 中加载和处理这个文件。但是由于文件很大,一次加载整个文件再处理效率会很低。所以我想分部分加载这个文件,然后在加载下一部分时同时处理它。那么我怎样才能部分读取这个文件呢?
我想到的一个想法是使用结构化流。但在这方面,整个文件也在单批次中加载。那么如何分批加载呢?
如果所有数据都位于一个单个文件中,您就不能让 Spark 避免扫描整个数据。
在读取数据时,Spark会根据配置spark.sql.files.maxPartitionBytes
将数据拆分成分区,默认为128MB。根据生成的分区数量以及 Spark 集群中的可用内核数量,将并行处理数据。
我存储了一个大文件。我想在 Databricks (pyspark) 中加载和处理这个文件。但是由于文件很大,一次加载整个文件再处理效率会很低。所以我想分部分加载这个文件,然后在加载下一部分时同时处理它。那么我怎样才能部分读取这个文件呢? 我想到的一个想法是使用结构化流。但在这方面,整个文件也在单批次中加载。那么如何分批加载呢?
如果所有数据都位于一个单个文件中,您就不能让 Spark 避免扫描整个数据。
在读取数据时,Spark会根据配置spark.sql.files.maxPartitionBytes
将数据拆分成分区,默认为128MB。根据生成的分区数量以及 Spark 集群中的可用内核数量,将并行处理数据。