【发布时间】:2021-11-27 03:49:50
【问题描述】:
我正在使用 Airflow 编排的 Spark 作业在 AWS Glue 中创建一个表,它从 json 读取并写入一个表,我在作业中使用的命令如下:
spark.sql(s"CREATE TABLE IF NOT EXISTS $database.$table using PARQUET LOCATION '$path'")
这里的奇怪之处在于,我使用相同的作业(具有不同的名称)创建了其他表,但它们的创建没有问题,例如他们有位置
s3://bucket_name/databases/my_db/my_perfectly_created_table
只有一个表使用这个位置创建自己:
s3://bucket_name/databases/my_db/my_problematic_table-__PLACEHOLDER__
我不知道-__PLACEHOLDER__ 来自哪里。我已经尝试删除表并重新创建它,但它总是在这个确切的表上做同样的事情。路径中的数据是 parquet 格式:
s3://bucket_name/databases/my_db/my_problematic_table
所以我知道问题只是正确地创建了表,因为我在 Athena 中尝试查询它时得到的只是 col (array<string>)(因为 /my_problematic_table-__PLACEHOLDER__ 中没有数据)。
你们中有人处理过这个问题吗?
【问题讨论】:
标签: apache-spark apache-spark-sql parquet aws-glue amazon-athena