有以下代码:
sdf.write.partitionBy("day_of_insertion").format("delta").mode("append").save(path)
分区是通过列完成的,但根据该列的基数,我认为它可能或多或少有趣或完全为空。
我知道,如果我们使用“user_id”作为分区列,它将没有任何意义,甚至可能是有害的,因为 user_id 与行一样多。
从数据帧的多少百分比中进行分区比较有意义? 即
如果我有一个包含 10.000 行和 1000 个不同数据的数据集
<attribute_of_partition> = "day_of_insertion"
答案取决于您的数据和用例。按“day_of_insertion”对数据进行分区的可能用例可能是:
假设您在很长一段时间内有数据登陆和摄取,并且在几周后您想要按日期删除或删除最旧的数据,那么按
day_of_insertion
对数据进行分区将使删除旧数据更加高效无需重写数据的某些部分。