def lambda_handler(event, context):
# created query
query = "SELECT * FROM %s.%s limit 50;" % (DATABASE, TABLE)
# athena client
client = boto3.client('athena')
# Execution
response = client.start_query_execution(
QueryString=query,
QueryExecutionContext={
'Database': DATABASE
},
ResultConfiguration={
'OutputLocation': S3_OUTPUT,
}
)
# get query execution id
query_execution_id = response['QueryExecutionId']
print(query_execution_id)
# get execution status
for i in range(1, 1 + RETRY_COUNT):
# get query execution
query_status = client.get_query_execution(QueryExecutionId=query_execution_id)
query_execution_status = query_status['QueryExecution']['Status']['State']
if query_execution_status == 'SUCCEEDED':
print("STATUS:" + query_execution_status)
break
if query_execution_status == 'FAILED':
raise Exception("STATUS:" + query_execution_status)
else:
print("STATUS:" + query_execution_status)
time.sleep(100)
else:
client.stop_query_execution(QueryExecutionId=query_execution_id)
raise Exception('TIME OVER')
# get query results
result = client.get_query_results(QueryExecutionId=query_execution_id)
print(result)
# get data
if len(result['ResultSet']['Rows']) == 2:
email = result['ResultSet']['Rows'][1]['Data'][1]['VarCharValue']
return email
else:
return None
Сообщение об ошибке:
HIVE_CANNOT_OPEN_SPLIT: Ошибка при открытии Hive split s3: // ************* / ****** / date = 2020-05-28 / час = 20 / part-00000-af4a5ab5-d8f9-4868-a974-90b3c2433366.c000.snappy.parquet (offset = 0, length = 22009):
- Появляется указанная выше ошибка, и я понятия не имею, что происходит. Пытался просканировать некоторые другие ресурсы, но не нашел их.
- Я пытаюсь запустить лямбда-функцию aws, которая считывает данные snappy.parquet и записывает результаты в S3.