日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用Python SDK的SelectObject查詢CSV和JSON文件

本文介紹如何使用Python SDKSelectObject查詢CSVJSON文件。

說明

本文示例由阿里云用戶fralychen提供,僅供參考。

上傳CSVJSON格式文件

您可以根據業務需求,在OSS管理控制臺將CSVJSON格式文件上傳到OSS bucket中。如何將文件上傳至OSS bucket,請參見上傳文件

調用測試

通過put_object中的key、contant參數創建并上傳了一個名為python_select的文件。

說明

以下JSONCSV示例需分開執行。

import os
import oss2

# 首先初始化AccessKeyId、AccessKeySecret、Endpoint等信息。
# 請確保已在環境變量中,設置OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
access_key_id = os.getenv('OSS_ACCESS_KEY_ID')
access_key_secret = os.getenv('OSS_ACCESS_KEY_SECRET')
# 指定Bucket名稱。
bucket_name = '<yourBucket>'
# 以杭州區域為例,Endpoint可以是:
# http://oss-cn-hangzhou.aliyuncs.com
# https://oss-cn-hangzhou.aliyuncs.com
endpoint = '<yourEndpoint>'

# 創建存儲空間實例,所有文件相關的方法都需要通過存儲空間實例來調用。
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)


### CSV示例

key = 'python_select.csv'
# 文件內容。
content = 'fralychen,China,30\r\nTom,USA,20\r\n'
filename = 'python_select.csv'
# 上傳一個名為python_select.csv文件。
bucket.put_object(key, content)

# 通過select_object使用sql語法查詢文件。
# def select_object(self, key, sql,
#                   progress_callback=None,
#                   select_params=None,
#                   byte_range=None
#                   )

result = bucket.select_object(key, 'select * from ossobject where _3 > 29')
print('csv select result:')
print(result.read())


### JSON示例

key = 'python_select.json'
#content = "{"contacts":
#        [
#            {
#            "key1":1,
#            "key2":"love china"
#            },
#            {
#            "key1":2,
#            "key2":"fralychen"
#            }
#        ]
#    }"
content = "{\"contacts\":[{\"key1\":1,\"key2\":\"love China\"},{\"key1\":2,\"key2\":\"fralychen\"}]}"

# 上傳一個名為python_select.json文件。
bucket.put_object(key,content)

select_json_params = {'Json_Type': 'DOCUMENT'}
result = bucket.select_object(key,'select s.key2 from ossobject.contacts[*] s where s.key1 = 1', None, select_json_params)
print('json select result:')
print(result.read())

輸出示例

您可以在OSS控制臺上查看上傳后的python_select.csvpython_select.json文件。a3

CSVJSON的示例輸出結果如下所示。resultfig

常見SQL語句

常見的SQL應用場景及對應的SQL語句如下表所示:

應用場景

SQL語句

返回前10行數據

select * from ossobject limit 10

返回第1列和第3列的整數,并且第1列大于第3

select _1, _3 from ossobject where cast(_1 as int) > cast(_3 as int)

返回第1列以'陳'開頭的記錄的個數

select count(*) from ossobject where _1 like '陳%'

說明

此處like之后的中文需要用UTF-8編碼。

返回所有第2列時間大于2018-08-09 11:30:25且第3列大于200的記錄

select * from ossobject where _2 > cast('2018-08-09 11:30:25' as timestamp) and _3 > 200

返回第2列浮點數的平均值、總和、最大值、和最小值

select AVG(cast(_2 as double)), SUM(cast(_2 as double)), MAX(cast(_2 as double)), MIN(cast(_2 as double)) from ossobject

返回第1列和第3列連接的字符串中以'Tom'為開頭以’Anderson‘結尾的所有記錄

select * from ossobject where (_1 || _3) like 'Tom%Anderson'

返回第1列能被3整除的所有記錄

select * from ossobject where (_1 % 3) = 0

返回第1列大小在19952012之間的所有記錄

select * from ossobject where _1 between 1995 and 2012

返回第5列值為N、M、G、和L的所有記錄

select * from ossobject where _5 in ('N', 'M', 'G', 'L')

返回第2列乘以第3列比第5列大100以上的所有記錄

select * from ossobject where _2 * _3 > _5 + 100

更多參考

  • 有關Python SDK API的更多信息,請參見GitHub

  • 有關SelectObject的更多信息,請參見查詢文件

  • 有關使用Python SDKSelectObject查詢CSVJSON文件的更多信息,請參見Python查詢文件