разбить и записать фрейм данных двумя функциями столбца с отображением выходных данных в указанную структуру каталогов - PullRequest
1 голос
/ 20 сентября 2019

Если у меня есть фрейм данных с полем tm типа timestamp, скажем, он охватывает несколько дней, много данных.Могу ли я разделить по времени и записать в папки что-то вроде этого:

gs://project/data/date=2019-09-19/hour=00/_SUCCESS
gs://project/data/date=2019-09-19/hour=00/part_000-....parquet
...
gs://project/data/date=2019-09-19/hour=01/_SUCCESS
...
gs://project/data/date=2019-09-20/hour=00/_SUCCESS

Скажем, все вместе 36 часов, я пытаюсь собрать 36 папок и, возможно, 360 выходных разделов между ними.

Я вижу, что могу сделать что-то вроде

df.repartition(360, F.date_format('tm', 'yyyy-MM-dd'), F.hour('tm'))

, и есть также

df.write.partitionBy( ...

, но я не уверен, могу ли я записать pyspark во все 36 папокв параллели.Возможно, мне придется записывать в каждую папку одну за другой, просто отфильтровывать нужный мне час и записывать в него - но тогда я буду недостаточно использовать свой кластер, поскольку каждый час имеет только 10 выходных разделов.

Я думаю, что проще, если у меня есть столбцы date и hour в кадре данных, но я не хотел этого делать, я просто хотел один столбец tm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...