在Apache Spark中处理大量文件

我需要用Spark处理约180万个json文件,并尝试分批处理。每个文件的大小都不大(最大为1 Mb)。我正在使用EMR,文件存储在S3上。我想使用spark创建一个DataFrame,并希望与另一个DataFrame进行联接-来自MySQL数据库:

orders_df = spark.read.option("multiline","true").json(pathlist).select(explode("data.bill").alias("data"))
orders_df = orders_df.join(bc_df,bc_df.pos_location_id == orders_df.data.storeId)

群集永久冻结在此代码上。从Spark的角度来看,加入应该是一种转变,而不是一种行动。是什么使群集在这里冻结?我将群集与r5d.4xlarge 16 vCore,128 GiB内存,600 SSD GB存储EBS存储:128 GiB一起使用,最小数量为12,最大数量为48个实例。我该如何解决这个问题?我应该将文件分割成更少的组,然后逐个处理吗?一个火花作业的合理输入文件数量是多少? 对于少量数据(2万个输入文件),作业可以正常工作。 Spark版本2.4.3,EMR版本5.26.0

jiulongrushui 回答:在Apache Spark中处理大量文件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3054587.html

大家都在问