Amazon web services 如何使用glue将存储在s3中的json文件转换为csv?
我有一些json文件存储在s3中,我需要在它们所在的文件夹中将它们转换为csv格式 目前我正在使用胶水将它们映射到雅典娜,但正如我所说的,现在我需要将它们映射到csv 有可能用胶水来做吗 我试图了解一个粘合作业是否可以爬网到我的s3文件夹目录,将它找到的所有json文件转换为csv(作为新文件) 如果不可能,是否有任何aws服务可以帮助我做到这一点 编辑1: 这是我正在尝试运行的当前代码Amazon web services 如何使用glue将存储在s3中的json文件转换为csv?,amazon-web-services,amazon-s3,aws-glue,Amazon Web Services,Amazon S3,Aws Glue,我有一些json文件存储在s3中,我需要在它们所在的文件夹中将它们转换为csv格式 目前我正在使用胶水将它们映射到雅典娜,但正如我所说的,现在我需要将它们映射到csv 有可能用胶水来做吗 我试图了解一个粘合作业是否可以爬网到我的s3文件夹目录,将它找到的所有json文件转换为csv(作为新文件) 如果不可能,是否有任何aws服务可以帮助我做到这一点 编辑1: 这是我正在尝试运行的当前代码 import sys from pyspark.context import SparkContext fr
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文件夹上似乎什么也没有发生。
我假设代码将从/dealer数据中获取json文件,并将其转换为与csv相同的文件夹。我可能错了
编辑2:
好吧,我几乎按我需要的方式工作了
问题是,“创建动态”框架仅适用于包含文件的文件夹,而不适用于包含包含文件的子文件夹的文件夹
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)
有没有办法读取给定文件夹和子文件夹的所有文件?您应该将
递归
选项设置为True
:
您的数据是否按月存储在S3上?如s3://agco sa dfs dv/dealer data/installations/3555/?答案正确吗?它有用吗?有人能核实一下吗?
inputGDF = glueContext.create_dynamic_frame_from_options(
connection_type = "s3",
connection_options = {
"paths": ["s3://agco-sa-dfs-dv/dealer-data/installations/3555/2019/2"],
"recurse" : True
},
format = "json
)