在 PySpark 的分区内加入 DataFrame
join DataFrames within partitions in PySpark
我有两个具有大量(数百万到数千万)行数的数据框。我想在它们之间进行连接。
在我目前使用的 BI 系统中,您可以通过首先在特定键上进行分区,然后在该键上进行连接来加快速度。
这是我需要在 Spark 中遵循的模式,还是无关紧要?乍一看似乎很多时间都浪费在了分区之间的洗牌数据上,因为它没有被正确地预分区。
如果有必要,我该怎么做?
If it is necessary, then how do I do that?
但是只有在两种情况下才有意义:
- 同一个应用程序有多个连接。分区会自行洗牌,因此如果它是单个连接,则没有附加值。
- 这是一个长期存在的应用程序,将重用随机数据。 Spark 无法利用以外部格式存储的数据的分区。
我有两个具有大量(数百万到数千万)行数的数据框。我想在它们之间进行连接。
在我目前使用的 BI 系统中,您可以通过首先在特定键上进行分区,然后在该键上进行连接来加快速度。
这是我需要在 Spark 中遵循的模式,还是无关紧要?乍一看似乎很多时间都浪费在了分区之间的洗牌数据上,因为它没有被正确地预分区。
如果有必要,我该怎么做?
If it is necessary, then how do I do that?
但是只有在两种情况下才有意义:
- 同一个应用程序有多个连接。分区会自行洗牌,因此如果它是单个连接,则没有附加值。
- 这是一个长期存在的应用程序,将重用随机数据。 Spark 无法利用以外部格式存储的数据的分区。