我在 AWS S3 中有一個 CSV 檔案。該檔案非常大 2.5 GB
該檔案有一列字串,超過 1.2 億個:
apc.com
xyz.com
ggg.com
dddd.com
...
如何查詢檔案以確定字串xyz.com是否位于檔案中?我只需要知道字串是否存在,我不需要回傳檔案。
此外,如果我可以傳遞多個字串進行搜索并只回傳在檔案中找到的字串,那就太好了。
例如:
查詢=> ['xyz.com','fds.com','ggg.com'] 將回傳=> ['xyz.com','ggg.com']
uj5u.com熱心網友回復:
“S3 Select” SelectObjectContent API 使應用程式能夠使用簡單的 SQL 運算式僅從物件中檢索資料的子集。這是一個 Python 示例:
res = client.select_object_content(
Bucket="my-bucket",
Key="my.csv",
ExpressionType="SQL",
InputSerialization={"CSV": { "FileHeaderInfo": "NONE" }}, # or IGNORE, USE
OutputSerialization={"JSON": {}},
Expression="SELECT * FROM S3Object s WHERE _1 IN ['xyz.com', 'ggg.com']") # _1 refers to the first column
有關輸出決議的示例,請參閱此AWS 博客文章。
uj5u.com熱心網友回復:
如果您使用該aws s3 cp命令,您可以將輸出發送到標準輸出:
aws s3 cp s3://yourbucket/foo.csv - | grep 'apc.com'
-破折號將輸出發送到標準輸出。
這是grep檢查多個模式的兩個示例:
aws s3 cp s3://yourbucket/foo.csv - | grep -e 'apc.com' -e 'dddd.com'
aws s3 cp s3://yourbucket/foo.csv - | grep 'apc.com\|dddd.com'
要了解有關 grep 的更多資訊,請查看手冊:GNU Grep 3.7
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493713.html
