我正在编写AWS Glue ETL作业,我有两个选项来构建:
使用AWS Glue数据目录作为Spark的亚稳态
df = spark.sql("select name from bronze_db.table_tbl")
df.write.save("s3://silver/...")另一种选择是直接从s3位置读取,如下所示
df = spark.read.format("parquet").load("s3://bronze/table_tbl/1.parquet","s3://bronze/table_tbl/2.parquet")
df.write.save("s3://silver/...")我是否应该考虑直接读取文件以节省成本或限制查询次数(从bronze_db.table_tbl中选择名称)或获得更好的读取性能?
我不确定这个查询是否会在雅典娜上运行以返回结果。
发布于 2022-10-09 07:08:20
如果您只有一个文件,并且知道模式,那么就不需要一个表。当有多个文件时,表很有用,您不知道模式(例如,表是由另一个进程设置和填充的),或者如果您正在查询来自多个引擎的数据(雅典娜、EMR、红移谱等)。
把表看作是一种互操作性的东西。与其他进程、其他引擎等的互操作性。
https://stackoverflow.com/questions/73995925
复制相似问题