使用 Spark 规划 JSON 的 DynamoDB 数据格式

Posted

技术标签:

【中文标题】使用 Spark 规划 JSON 的 DynamoDB 数据格式【英文标题】:DynamoDB data format to plan JSON using spark 【发布时间】:2020-09-16 22:22:36 【问题描述】:

我有一个 S3 存储桶,其中包含使用 DataPipline 从 DynamoDB 复制的数据。因此 s3 中的数据格式如下(在 s3 中为单行)。

    
      "file": 
        "S": "file1.mp4"
      ,
      "id": 
        "S": "1"
      ,
      "canvas": 
        "S": "This is Canvas1"
      
    

我想将其转换为另一个应用程序所需的不同格式(我无法控制)。

预期的输出格式:

    
      "file": "file1.mp4",
      "id": "1",
      "canvas": "This is Canvas1"
    

有没有办法在火花中做到这一点?我不能使用 Lambda,因为文件数量会很大。

注意:S3 中的 JSON 将是单行的。我在这里对其进行了格式化以便更好地查看和理解。

【问题讨论】:

【参考方案1】:

您可以使用AWS Glue,而使用的AWS Glue将使用spark重新格式化。

您可以查看 Json flattening 示例,使用胶水 Relationalize Transform here。

简而言之,使用 Glue ,您将需要这样做

    在 AWS Glue 中创建爬虫后,让它在目录(数据库)中创建架构。

    创建一个用于转换 json 的 Glue 作业,这里再次选择 json 作为输出文件。这将使用转换步骤使用 Rationalize 类来展平数据

【讨论】:

以上是关于使用 Spark 规划 JSON 的 DynamoDB 数据格式的主要内容,如果未能解决你的问题,请参考以下文章

Dynamo 吞吐量未达到预置水平 - 使用 Hive 和 EMR 5.2

基于动态规划的自适应和弦编配算法研究

无法在{tableName}查询Dynamo

Loki 保留期 s3 + dynamo

扫描Dynamo DB中的特定行

Dynamo可视化程序结构剖析BIM