Если вы хотите, чтобы все похожие идентификаторы account_ids присутствовали в одной папке, вы можете добиться этого с помощью функции partitionBy . Ниже приведен пример, который сгруппирует все идентификаторы account_ids и запишет их в формате паркета в разные папки. Вы можете изменить режим в зависимости от вашего варианта использования.
df.write.mode("overwrite").partitionBy('account_id').parquet('s3://mybucket/')
Если вам нужно несколько разделов, вы можете сделать это, добавив столбцы в функцию partitionBy. Например, представьте, что у вас есть дата столбца со значениями формата yyyy/mm/dd
, тогда нижеприведенный фрагмент снова создаст папки внутри account_id
с несколькими датами.
df.write.mode("overwrite").partitionBy('account_id','date').parquet('s3://mybucket/')
будет записывать файлы в S3 в следующем формате:
s3://mybucket/account_id=somevalue/date=2020/11/01
s3://mybucket/account_id=somevalue/date=2020/11/02
s3://mybucket/account_id=somevalue/date=2020/11/03
......
s3://mybucket/account_id=somevalue/date=2020/11/30