Сохранение файла паркета в Python SDK изменяет форматирование даты - PullRequest
0 голосов
/ 21 мая 2019

У меня есть некоторые данные, которые я пытаюсь сохранить в файл паркета с помощью PySpark, а затем загрузить в корзину S3.Эти данные содержат столбец даты, который должен быть в формате YYYY/MM.

Когда я сохраняю фрейм данных Spark локально, формат является правильным, и когда я загружаю его с помощью интерфейса командной строки AWS, форматтоже правильно.Однако когда я использую Boto3 SDK и функцию upload_file, столбец даты преобразуется в формат YYYY-MM-DD.Этот процесс начал происходить недавно, так как он работал без проблем несколько месяцев назад.Я не думаю, что мы изменили версию Boto3 в какое-то время - 1.7.33

Код SDK: s3_client.upload_file('/'.join(path.split('/')[:-1])+'/'+file_name, s3_bucket,"/".join(options["file_location"].split("/")[3:])+'/'+file_name,ExtraArgs={'ServerSideEncryption':'AES256','ACL':'bucket-owner-read'})

Код CLI: copy_file_cmd = 'aws s3 cp {path} {s3_location} --sse AES256'. \ format(path=service_temp_loc + '/' + options['file_name'], \ s3_location=options['file_location'] + options['file_name'])

пример данных:

правильно:

2018/03 NULL    AFS USD NULL    test1   test2   test3   154404189.4 MarOL
2018/04 NULL    AFS USD NULL    test1   test2   test3   299628349.7 MarOL
2018/05 NULL    AFS USD NULL    test1   test2   test3   453738680.6 MarOL
2018/06 NULL    AFS USD NULL    test1   test2   test3   589610947.2 MarOL
2018/07 NULL    AFS USD NULL    test1   test2   test3   735510224.6 MarOL
2018/08 NULL    AFS USD NULL    test1   test2   test3   867543313.9 MarOL
2018/09 NULL    AFS USD NULL    test1   test2   test3   999765670.7 MarOL
2018/10 NULL    AFS USD NULL    test1   test2   test3   1124704032  MarOL

неверно:

2018-03-01  NULL    AFS USD NULL    test1   test2   test3   154404189.4 MarOL
2018-04-01  NULL    AFS USD NULL    test1   test2   test3   299628349.7 MarOL
2018-05-01  NULL    AFS USD NULL    test1   test2   test3   453738680.6 MarOL
2018-06-01  NULL    AFS USD NULL    test1   test2   test3   589610947.2 MarOL
2018-07-01  NULL    AFS USD NULL    test1   test2   test3   735510224.6 MarOL
2018-08-01  NULL    AFS USD NULL    test1   test2   test3   867543313.9 MarOL
2018-09-01  NULL    AFS USD NULL    test1   test2   test3   999765670.7 MarOL```
...