当前位置: 首页 > 知识库问答 >
问题:

AWS Glue使用与源表相同的分区将文件从JSON转换为Parquet

苏品
2023-03-14

我们正在使用AWS胶水来转换存储在我们的S3数据片中的JSON文件。

这是我遵循的步骤,

>

  • 创建了一个爬虫程序,用于从包含JSON数据的datalake bucket生成Glue上的表。

    新创建的表具有如下分区,

    名称、年、月、日、时

    创建了一个胶水作业,将其转换为拼花地板并存储在不同的桶中

    通过这些过程,作业可以成功运行,但新bucket中的数据不会被分区。它只是在一个目录下。

    我想实现的是转换后的拼花文件应该获得与源表/数据湖桶中相同的分区。

    此外,我想增加拼花文件的文件大小(减少文件数量)。

    有人能帮我吗?

  • 共有1个答案

    柯河
    2023-03-14

    尝试以下方法来编写动态框架。

    glueContext.write_dynamic_frame.from_options(
    frame=<output_dataframe>,
    connection_type="s3",
    connection_options={"path": "s3://<output_bucket_path>",
                        "partitionKeys": ["Name", "Year", "Month" , "day", "hour"]},
    format="parquet")
    
     类似资料:
    • 我是Java新手,我试图在不使用任何外部库的情况下将任何给定的json文件转换为html文件,除了GSON来解释json结构。由于我目前还不知道如何正确处理这个问题,我想谦卑地请求您的帮助。 这是一个示例json文件: 这是文件的预期输出: 这是我目前拥有的代码:(实际的转换方法) (使用GSON的json提取方法) 这是我当前对html文件的输出,显然是不正确的:

    • 问题内容: 所以我想将一个简单的制表符分隔的文本文件转换为一个csv文件。如果我使用string.split(’\ n’)将txt文件转换为字符串,则会得到一个列表,其中每个列表项都是字符串,每列之间带有’\ t’。我当时以为我可以用逗号替换’\ t’,但它不会像清单中的字符串一样对待字符串,并允许我使用string.replace。这是我的代码的开始,仍然需要解析选项卡“ \ t”的方法。 问题

    • 问题内容: 我正在使用以下代码: 它在我的IDE中抛出错误,但为什么呢?我已经使用了一些示例中的代码。 我不知道要写入什么,因为我想转换任何CSV文件。 如何将任何CSV文件转换为JSON并将其保存到磁盘? 接下来做什么?例子 问题答案: 我认为,您应该使用它来解决问题。请参见以下示例: 有关更多信息和示例,请参见此页面:jackson-dataformat-csv。

    • 问题内容: 我正在尝试将通过BeautifulSoup提取的表转换为JSON。 到目前为止,尽管我不确定如何从此处处理数据,但我设法隔离了所有行。任何建议将不胜感激。 (为了方便阅读,换行了) 这是我的尝试: 这给了我以下结果: 问题答案: 您的数据可能类似于: 我们可以使用以下代码从中以列表的形式获得您的结果: 要将结果转换为JSON(如果您不关心顺序): 结果: 如果您需要相同的订单,请使用以

    • 问题内容: 我有一个Kotlin源文件,但我想将其转换为Java。 如何将Kotlin转换为Java源代码? 问题答案: 正如@Vadzim所说,在IntelliJ或Android Studio中,你只需执行以下操作即可从kotlin获取Java代码: Menu > Tools > Kotlin > Show Kotlin Bytecode 点击Decompile按钮 复制Java代码 更新: 使

    • 有没有办法将文件对象转换为多部分文件?以便我可以将该对象发送到接受接口对象的方法?