You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Kengo Seki (JIRA)" <ji...@apache.org> on 2019/01/06 22:26:00 UTC
[jira] [Commented] (AIRFLOW-3419) S3_hook.select_key is broken on
Python3
[ https://issues.apache.org/jira/browse/AIRFLOW-3419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16735353#comment-16735353 ]
Kengo Seki commented on AIRFLOW-3419:
-------------------------------------
I think {{S3Hook.select_key}} should be fixed in the way [~vapira] proposed. As [~ashb] concerns, it introduces an incompatible change that revises the return type from str to unicode on Python2, but in addition to fixing the problem on Python3, it also makes {{S3Hook.select_key}}'s behaviour consistent with the other API such as {{S3Hook.read_key}}.
[~vapira], would you like to submit a PR? If not, I'll do that later.
> S3_hook.select_key is broken on Python3
> ---------------------------------------
>
> Key: AIRFLOW-3419
> URL: https://issues.apache.org/jira/browse/AIRFLOW-3419
> Project: Apache Airflow
> Issue Type: Bug
> Components: boto3, hooks
> Affects Versions: 1.10.1
> Reporter: Maria Rebelka
> Priority: Major
>
> Hello,
> Using select_key throws an error:
> {quote}text = S3Hook('aws_conn').select_key(key='my_key',
> bucket_name='my_bucket',
> expression='SELECT * FROM S3Object s',
> expression_type='SQL',
> input_serialization={'JSON': \{'Type': 'DOCUMENT'}},
> output_serialization={'JSON': {}}){quote}
> Traceback (most recent call last):
> {quote} File "db.py", line 31, in <module>
> output_serialization={'JSON': {}})
> File "/usr/local/lib/python3.4/site-packages/airflow/hooks/S3_hook.py", line 262, in select_key
> for event in response['Payload']
> TypeError: sequence item 0: expected str instance, bytes found{quote}
> Seems that the problem is in this line:
> S3_hook.py, line 262: return ''.join(event['Records']['Payload']
> which probably should be return ''.join(event['Records']['Payload'].decode('utf-8')
> From example in Amazon blog:
> https://aws.amazon.com/blogs/aws/s3-glacier-select/
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)