结果查询如何影响查询

2024-09-29 23:16:59 发布

您现在位置:Python中文网/ 问答频道 /正文

查询AWS Athena时,第一个查询工作正常,查询结果存储在文件夹中,运行第二个查询时出现以下错误:

错误消息

HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split s3://cdr-bucket-par/res/db9f22bf-86d3-434d-af56-319a6a705698.csv.metadata (offset=0, length=117): Not valid Parquet file: s3://cdr-bucket-par/res/db9f22bf-86d3-434d-af56-319a6a705698.csv.metadata expected magic number: [80, 65, 82, 49] got: [72, 3, 80, 1].

我找到了一个解决方案,如果我删除文件夹与结果查询之前,使查询工作正常,如果没有错误。在不删除查询结果的情况下,是否可以生成没有错误的查询?你知道吗

使用AWS cli和python boto3运行查询

#Query definitions
query_1 = "SELECT * FROM %s.%s ;" % (database, table)

#Function for starting athena query
def run_query(query, database, s3_output):
    objects_to_delete = s3.meta.client.list_objects(Bucket='cdr-bucket-par', Prefix="res/")
    response = athena.start_query_execution(
        QueryString=query,
        QueryExecutionContext={
            'Database': database
            },
        ResultConfiguration={
            'OutputLocation': s3_output,
            }
        )
    print('Execution ID: ' + response['QueryExecutionId'])
    response=get_query_results(response['QueryExecutionId'])
    return response

使用这段代码,每次运行查询之前,我都会删除包含查询结果的文件夹,查询工作正常,但如果在一次成功的查询之后不这样做,我就会得到错误


Tags: csv文件夹awss3bucketresponse错误res

热门问题