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

AWS Glue作业将表转换为镶木地板,不需要另一个爬虫

花阳辉
2023-03-14

有没有可能让粘合作业将JSON表重新分类为拼花,而不需要另一个爬虫来抓取拼花文件?

当前设置:

  1. 分区S3 bucket中的JSON文件每天爬网一次

我必须相信有一种方法可以在没有另一个爬虫的情况下转换表分类(但我以前被AWS烧伤过)。非常感谢任何帮助!

共有1个答案

韶景曜
2023-03-14

为了方便起见,2个爬虫是最好的选择。

出于成本考虑,黑客解决方案应该是:

>

  • 使用SHOW CREATE TABLE从Athena获取json表的CREATE TABLEDDL

    在创建表DDL中,将表名和SerDer从json替换为parquet。除了位置之外,您不需要原始的创建表DDL中的其他表属性。

    在Athena中执行新的CREATE TABLEDDL。

    例如:

    SHOW CREATE TABLE json_table;
    

    原始DDL:

    CREATE EXTERNAL TABLE `json_table`(
      `id` int COMMENT, 
      `name` string COMMENT)
    ROW FORMAT SERDE 
      'org.openx.data.jsonserde.JsonSerDe' 
    ...
    LOCATION
      's3://bucket_name/table_data'
    ...
    

    新DDL:

    CREATE EXTERNAL TABLE `parquet_table`(
      `id` int COMMENT, 
      `name` string COMMENT)
    ROW FORMAT SERDE 
      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    LOCATION
      's3://bucket_name/table_data'
    

    您也可以使用Glue api方法以相同的方式执行此操作:get\u table()

    注意-如果您想定期运行它,您需要在第一个爬虫程序运行后,将其包装在脚本中,并使用另一个调度器(crontab等)对其进行调度。

  •  类似资料:
    • 我正在尝试使用AWS胶水将大约1.5 GB的Gzip CSV转换为拼花地板。下面的脚本是自动生成的粘合作业,用于完成该任务。这似乎需要很长时间(我已经等了10个dpu好几个小时了,从来没有看到它结束或产生任何输出数据) 我想知道是否有人有任何经验将1.5 GB GZIPPED CSV转换为镶木地板-是否有更好的方法来完成此转换? 我有TB的数据要转换。值得关注的是,转换GBs似乎需要很长时间。 我

    • 我的 hdfs 中有 Parquet 文件。我想将这些镶木地板文件转换为csv格式

    • 我正在尝试将存储在HDFS(100Gbs)上的一堆多部分avro文件转换为拼花文件(保留所有数据) Hive可以使用以下命令将avro文件作为外部表读取: 但是当我试图设计一张拼花桌时: 它会抛出一个错误: 失败:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。java.lang.UnsupportedOperationException:未知字

    • 我正在使用AWS S3、Glue和Athena进行以下设置: S3级-- 我的原始数据作为CSV文件存储在S3上。我正在使用Glue进行ETL,并使用Athena查询数据。 因为我使用的是雅典娜,所以我想将CSV文件转换为拼花。我现在正在用AWS胶水来做这个。这是我当前使用的流程: 运行爬虫读取CSV文件并填充数据目录 胶水作业一次只允许我转换一个表。如果我有很多CSV文件,这个过程很快就变得无法

    • 我无法使用镶木地板文件将列的类型从更改为。 使用: 改变表DATABASE.TABLE改变COL INT(从字符串到int) 或 < code >更改表数据库。表格更改列列字符串(从int到string) 读取数据时产生错误: 文件x的“db.table.col”列具有不兼容的拼花架构。列类型:INT,拼花模式:可选byte_array col[i:1 d:1 r:0] 读了这个留档,我明白: T

    • 我正在尝试使用火花在S3文件中生成拼花文件,目的是稍后可以使用presto从拼花中查询。基本上,它看起来是这样的, <代码>Kafka- 我能够使用Spark在S3中生成拼花并且工作正常。现在,我正在查看presto,我想我发现它需要hive meta store才能从拼花中查询。即使拼花保存模式,我也无法让presto读取我的拼花文件。那么,这是否意味着在创建拼花文件时,火花作业还必须将元数据存