首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >S3选择Python错误

S3选择Python错误
EN

Stack Overflow用户
提问于 2018-07-19 03:48:31
回答 1查看 3.1K关注 0票数 1

我正在尝试从S3对象捕获数据。我正在使用S3精选功能,如下所示:

boto3版本: 1.7.59

代码语言:javascript
复制
import boto3

s3 = boto3.client('s3')
r = s3.select_object_content(
    Bucket="bucket",
    Key="file.json",
    ExpressionType='SQL',
    Expression="select * from s3object S3Object AS s",
    InputSerialization = {
                            'JSON': {
                            'Type': 'LINES'
                            }
                        },
    OutputSerialization = { 'JSON': { 'RecordDelimiter': ',' } },
)


for event in r['Payload']:
    if 'Records' in event:
        records = event['Records']['Payload'].decode('utf-8')
        print(records)
    elif 'Stats' in event:
        statsDetails = event['Stats']['Details']
        print("Stats details bytesScanned: ")
        print(statsDetails['BytesScanned'])
        print("Stats details bytesProcessed: ")
        print(statsDetails['BytesProcessed'])

在运行我的代码之后,我得到了错误:

记录回溯(最近一次调用):文件"C:/Users/a_urrego/PycharmProjects/DW_FlightHub/S3Select.py",行48,在OutputSerialization ={ 'JSON':{‘记录分隔符’:',‘} },文件"C:\Users\a_urrego\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\client.py",行314,在_api_call

self._make_api_call(operation_name,kwargs)文件"C:\Users\a_urrego\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\client.py",第612行,在_make_api_call raise error_class(parsed_response,operation_name) botocore.exceptions.ClientError中:调用SelectObjectContent操作时出现错误(ParseUnexpectedToken):意外标记发现为:在第1行,第33列。

进程已完成,退出代码为% 1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 04:20:55

看起来您传递的SQL表达式无效:

代码语言:javascript
复制
"select * from s3object S3Object AS s"

常规SQL语法为

代码语言:javascript
复制
"SELECT <columns | *> FROM <table> <alias>"

但它看起来像是重复了一个表名或其他东西。SQL语句的大小写是可选的,但我倾向于喜欢它。

我还没有用过boto3的这个功能,但在谷歌搜索并阅读了3分钟的错误消息后,这似乎就是问题所在。

编辑

在发现打字错误后更新了上面的模板。同样值得注意的是,表别名在这个用例中是不必要的,因为它是一个非常简单的SELECT语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51409964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档