gpt4 book ai didi

apache-spark - 如何为将来的排序合并连接保留已排序的 Parquet 表?

转载 作者:行者123 更新时间:2023-12-04 15:20:52 26 4
gpt4 key购买 nike

我想在 S3 上将一个大的排序表持久化到 Parquet,然后读入并使用排序合并连接策略将它连接到另一个大排序表。

问题是:即使我事先在连接键上对这些表进行了排序,一旦我将它们持久化到 Parquet,它们似乎就会丢失有关它们排序的信息。有没有提示 Spark 下次我阅读它们时不需要使用它们?

我一直在 Spark 1.5 上尝试这个,我不断收到 SQL EXPLAIN计划看起来像:

[== Physical Plan ==]
[TungstenProject [pos#28400,workf...#28399]]
[ SortMergeJoin [CHROM#28403,pos#28400], [CHROM#28399,pos#28332]]
[ TungstenSort [CHROM#28403 ASC,pos#28400 ASC], false, 0]
[ TungstenExchange hashpartitioning(CHROM#28403,pos#28400)]
[ ConvertToUnsafe]
[ Scan ParquetRelation[file:/....sorted.parquet][pos#284....8424]]
[ TungstenSort [CHROM#28399 ASC,pos#28332 ASC], false, 0]
[ TungstenExchange hashpartitioning(CHROM#28399,pos#28332)]
[ ConvertToUnsafe]
[ Scan ParquetRelation[file:....exploded_sorted.parquet][pos#2.....399]]

您可以在那里看到额外的 TungstenExchange 和 TungstenSort 阶段,即使此连接位于 orderBy 的两个表上。在保存到 Parquet 之前按连接键排序。

最佳答案

关于apache-spark - 如何为将来的排序合并连接保留已排序的 Parquet 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32217272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com