Как результат запроса влияет на запросы - PullRequest
0 голосов
/ 11 июня 2019

Запрашивая AWS Athena, первый запрос работает нормально, результат запроса сохраняется в папке, при выполнении второго запроса появляется эта ошибка:

Сообщение об ошибке

HIVE_CANNOT_OPEN_SPLIT: Ошибка при открытии Hive split s3: //cdr-bucket-par/res/db9f22bf-86d3-434d-af56-319a6a705698.csv.metadata (смещение = 0, длина = 117): недопустимо. 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

С этим кодом каждый раз перед запуском запроса я удаляю папку с результатами запроса, и запрос работает нормально, но если нет после одного успешного запроса, я получаю сообщение об ошибке

...