如何用apachespark并行读写两个Dataframe

llycmphe  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(343)

我从jdbc数据源创建两个Dataframe,然后将它们都写入一个s3存储桶。写入s3的文件的时间戳相隔20秒,这告诉我这些操作不是并行执行的。出于测试目的,从相同的数据库/表和相同数量的行中加载数据。如何使读写并行执行?
python脚本在aws glue开发端点上运行,具有2 dpu,标准工作类型。

df1 = spark.read.format("jdbc").option("driver", driver).option("url", url).option("user", user).option("password", password).option("dbtable", query1).option("fetchSize", 50000).load()
df2 = spark.read.format("jdbc").option("driver", driver).option("url", url).option("user", user).option("password", password).option("dbtable", query2).option("fetchSize", 50000).load()

df1.write.mode("append").format("csv").option("compression", "gzip").option("timestampFormat", "yyyy.MM.dd HH:mm:ss,SSS").option("maxRecordsPerFile", 1000000).save("s3://bucket-name/test1")
df2.write.mode("append").format("csv").option("compression", "gzip").option("timestampFormat", "yyyy.MM.dd HH:mm:ss,SSS").option("maxRecordsPerFile", 1000000).save("s3://bucket-name/test2")
vu8f3i0k

vu8f3i0k1#

启用粘合作业的并发执行,然后在单个作业中运行该作业两次因为spark是分布式处理,所以无法并行保存Dataframe。

相关问题