结果查询如何影响查询

时间:2019-06-11 06:22:37

标签: python amazon-web-services amazon-s3 amazon-athena

查询AWS Athena,第一个查询工作正常,查询结果存储在该文件夹中,运行第二个查询有此错误:

错误消息

  

HIVE_CANNOT_OPEN_SPLIT:打开Hive拆分时出错   s3://cdr-bucket-par/res/db9f22bf-86d3-434d-af56-319a6a705698.csv.metadata   (偏移量= 0,长度= 117):无效的Parquet文件:   s3://cdr-bucket-par/res/db9f22bf-86d3-434d-af56-319a6a705698.csv.metadata   预期的魔术数:[80,65,82,49]得到:[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

使用此代码,每次运行查询之前,我都会删除包含查询结果的文件夹,并且查询工作正常,但如果在一次成功查询后没有执行此操作,则会收到错误消息

0 个答案:

没有答案