pyspark-parquet文件大小完全不同

baubqpgj  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(291)

我使用pyspark每天处理一组固定的数据记录,并将它们作为16个Parquet文件存储在一个hive表中,使用date作为分区。从理论上讲,每天的记录数量应该与下面显示的数量级相同,大约12亿行,而且确实是相同的数量级。

当我查看Parquet文件时,每天每个Parquet文件的大小约为86mb,如下面显示的2019-09-04

但我注意到一件非常奇怪的事情是2019-08-03的日期,文件大小比其他日期的文件大10倍,但记录的数量似乎多少是一样的。我很困惑,想不出原因。如果你知道为什么,请告诉我。谢谢您。

我刚刚意识到我保存2019-08-03数据的方法如下

cols = sparkSession \
.sql("SELECT * FROM {} LIMIT 1".format(table_name)).columns

df.select(cols).write.insertInto(table_name, overwrite=True)

其他日子

insertSQL = """
INSERT OVERWRITE TABLE {}
PARTITION(crawled_at_ds = '{}')
SELECT column1, column2, column3, column4
FROM calendarCrawlsDF
"""

sparkSession.sql(
    insertSQL.format(table_name,
                     calendarCrawlsDF.take(1)[0]["crawled_at_ds"]))

对于2019-08-03,我使用了dataframe insertinto方法。在其他日子里,我使用sparksession sql执行insert overwrite table
这可能是原因吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题