pyspark读取csv文件是否有限制?

ilmyapht  于 2022-12-11  发布在  Spark
关注(0)|答案(1)|浏览(188)

我是相对较新的Spark/pyspark,所以任何帮助是非常感谢。
目前,我们每小时将文件传送到Azure数据湖的文件目录中,例如:
小时数
我正在使用databricks读取文件目录中的文件,使用以下代码:

sparkdf = spark.read.format(csv).option("recursiveFileLookup", "true").option("header", "true").schema(schema).load(file_location)

每个CSV文件大约为5 KB,并且都具有相同的架构。
我不确定的是“www.example.com“的可伸缩性如何spark.read?目前我们正在处理大约2000个这样的小文件,我担心正在处理的文件数量有限制。是否有限制,如最大5000个文件和我的代码以上的断裂?
从我在网上读到的内容来看,我相信数据大小不是上述方法的问题,Spark可以读取PB级的数据(相比之下,我们的数据总量仍然非常小),但没有提到它能够处理的文件数量-如果我错了,请告诉我。
任何解释都非常感谢。
谢谢你

lnlaulya

lnlaulya1#

你的驱动程序内存的限制。
当阅读一个目录时,驱动程序会列出它(根据初始大小,它可能会将列表并行化到执行器,但它会以任何方式收集结果)。在获得文件列表后,它会为执行器创建要运行的任务。
考虑到这一点,如果列表太大而无法放入驱动程序的内存中,则会出现问题。
您可以随时增加驱动程序的内存空间来管理它,或者进行一些预处理来合并文件(GCS有一个gsutil compose,它可以在不下载文件的情况下合并文件)。

相关问题