У меня есть некоторые json-файлы, хранящиеся в s3, и мне нужно преобразовать их в папке папки в формат csv.
В настоящее время я использую клей, чтобы сопоставить их с Афиной, но,как я уже сказал, теперь мне нужно сопоставить их с CSV.
Можно ли использовать для этого клеевую работу?
Я пытаюсь понять, можно ли склеить задание в мои каталоги папок s3, преобразовав все найденные json-файлы в csv (как новые файлы).
Если это невозможно, есть ли какие-либо aws?служба, которая может помочь мне сделать это?
EDIT1:
Вот текущий код, который я пытаюсь запустить
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext()
glueContext = GlueContext(sc)
inputGDF = glueContext.create_dynamic_frame_from_options(connection_type = "s3", connection_options = {"paths": ["s3://agco-sa-dfs-dv/dealer-data"]}, format = "json")
outputGDF = glueContext.write_dynamic_frame.from_options(frame = inputGDF, connection_type = "s3", connection_options = {"path": "s3://agco-sa-dfs-dv/dealer-data"}, format = "csv")
Работа выполняется без ошибок, но ничегоКажется, что происходит на папке S3.Я полагаю, что код будет получать файлы JSON из / дилер-данных и конвертировать в ту же папку, что и CSV.Я, вероятно, ошибаюсь.
EDIT2:
Хорошо, я почти заставил это работать так, как мне нужно.
Дело в том, что создание динамического фрейма работает только дляпапки с файлами, а не папки с подпапками с файлами.
import sys
import logging
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
sc = SparkContext()
glueContext = GlueContext(sc)
inputGDF = glueContext.create_dynamic_frame_from_options(connection_type = "s3", connection_options = {"paths": ["s3://agco-sa-dfs-dv/dealer-data/installations/3555/2019/2"]}, format = "json")
outputGDF = glueContext.write_dynamic_frame.from_options(frame = inputGDF, connection_type = "s3", connection_options = {"path": "s3://agco-sa-dfs-dv/dealer-data/installations/3555/2019/2/bla.csv"}, format = "csv")
Вышеприведенное работает, но только для этого каталога (../2) Есть ли способ прочитать все файлы данной папки и подпапок?