Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用glue将存储在s3中的json文件转换为csv?_Amazon Web Services_Amazon S3_Aws Glue - Fatal编程技术网

Amazon web services 如何使用glue将存储在s3中的json文件转换为csv?

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

我有一些json文件存储在s3中,我需要在它们所在的文件夹中将它们转换为csv格式

目前我正在使用胶水将它们映射到雅典娜,但正如我所说的,现在我需要将它们映射到csv

有可能用胶水来做吗

我试图了解一个粘合作业是否可以爬网到我的s3文件夹目录,将它找到的所有json文件转换为csv(作为新文件)

如果不可能,是否有任何aws服务可以帮助我做到这一点

编辑1:

这是我正在尝试运行的当前代码

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
)