Apache spark 拼花地板存储空间更大,用于复制数据

Apache spark 拼花地板存储空间更大,用于复制数据,apache-spark,pyspark,apache-spark-sql,parquet,parquet-mr,Apache Spark,Pyspark,Apache Spark Sql,Parquet,Parquet Mr,我有一个数据集,在拼花地板格式中有将近20亿行,跨越200个文件。它在S3上占用17.4GB。此数据集有近45%的重复行。我使用Spark中的“distinct”函数消除了数据集的重复数据,并将其写入S3上的不同位置 我希望数据存储量减少一半。相反,经过重复数据消除的数据占用了34.4 GB(是具有重复数据的数据的两倍) 我开始检查这两个数据集的元数据。我发现重复数据和消除重复数据的列编码存在差异 我想了解如何获得减少存储大小的预期行为 话虽如此,我还有几个问题: 我还想了解这种异常是否会以任

我有一个数据集,在拼花地板格式中有将近20亿行,跨越200个文件。它在S3上占用17.4GB。此数据集有近45%的重复行。我使用Spark中的“distinct”函数消除了数据集的重复数据,并将其写入S3上的不同位置

我希望数据存储量减少一半。相反,经过重复数据消除的数据占用了34.4 GB(是具有重复数据的数据的两倍)

我开始检查这两个数据集的元数据。我发现重复数据和消除重复数据的列编码存在差异

我想了解如何获得减少存储大小的预期行为

话虽如此,我还有几个问题:

  • 我还想了解这种异常是否会以任何方式影响性能。在我的过程中,我必须在这些列上应用大量过滤器,并使用
    distinct
    函数来保存过滤后的数据
  • 我在网上的一些拼花博客上看到,一个专栏的编码只是其中之一。在本例中,我看到不止一个列编码。这正常吗

  • 1.你检查过清点前后的清点了吗?降价似乎正确吗?2.您是否使用任何特定的分区逻辑?例如,按重复最多的列或按大小最大的列进行分区,etc1。复制前计数:427519575删除复制后计数:290965749 2。根本不使用任何分区。然后,在写入之前,我会尝试按最大的列大小对数据进行分区。只是为了最大限度地压缩拼花地板。如果大小与此相同或更糟,那么重复数据消除过程中可能会出现可疑情况?!快速提问,有没有办法找到最大的col的大小?我知道我的数据,但我想知道是否有办法做到这一点