我有一个用户“表”,我想按“位置”进行分区。但是在尝试使用时:
usersNewDf.write.partitionBy("location") \
.parquet("....../parquet/users.parquet")
我收到很多“尝试*”文件,我想我看到它可能是因为我有太多小分区?检查时哪个看似真实。许多地方只有1个用户。所以我想为那些用户我清理位置。
我想知道,这是最好的方法吗?是否可以按位置进行分区而不清除不常见的位置?也许如果分区太小,可以将它们分组?
如果我要清除不常见的位置,我可能会有大量没有位置的用户,所以1个大分区。这个可以吗?或者我该怎么做才能改善这种情况?
在这种情况下,我还应该使用partitionBy
还是repartition
?
答案 0 :(得分:1)
你应该在write.partitionBy(“location”)之前重新分区(“location”)否则多个工作分区(在数据混乱之后)将写入同一个文件分区