Apache spark apachespark(PySpark):对拼花地板数据进行全局排序并等分大小
是否可以在S3中对所有分区的拼花地板数据进行排序,并将数据另外划分为相等的分区(计算我有多少数据,并将其划分为64或128以获得相等的文件) 将所有内容排序并平均分配的原因是,在S3中有更好的压缩,并在从S3查询数据时减少Athena中的扫描次数 我尝试了以下几点:Apache spark apachespark(PySpark):对拼花地板数据进行全局排序并等分大小,apache-spark,amazon-s3,pyspark,Apache Spark,Amazon S3,Pyspark,是否可以在S3中对所有分区的拼花地板数据进行排序,并将数据另外划分为相等的分区(计算我有多少数据,并将其划分为64或128以获得相等的文件) 将所有内容排序并平均分配的原因是,在S3中有更好的压缩,并在从S3查询数据时减少Athena中的扫描次数 我尝试了以下几点: 执行重新分区df.orderBy(col1,col2).重新分区(100).write('s3://')-提供相等的分区,但是由于乱洗2次(orderBy和重新分区),排序顺序没有保持 执行orderBy然后coalescedf.o
df.orderBy(col1,col2).重新分区(100).write('s3://')
-提供相等的分区,但是由于乱洗2次(orderBy和重新分区),排序顺序没有保持df.orderBy(col1,col2).coalesce(100).write('s3://'))
-保留顺序,但生成不相等的分区,有时我还需要增加spark.sql.shuffle.partitions上的分区数,coalesce不会这样做--conf spark.sql.shuffle.partitions=100,df.orderBy(col1,col2.write('s3://'))
-保留顺序,但输出文件不会等分重新分区(100).sortThinPartitions(col1,col2)
”,但这不是“全局”排序关于我这里缺少的内容有什么想法吗…只是想知道df.repartition(100).orderBy是否有效?不,它会将数据重新分区为100(大小相同),然后orderBy将生成与spark.sql.shuffle.partitions相等的文件数-至少这是我到目前为止看到的情况,只是想知道df.repartition(100).orderBy可以工作吗?不,它会将数据重新分区为100(大小相同),然后orderBy将生成与spark.sql.shuffle.partitions相等的文件数-至少这是我到目前为止看到的