簡體   English   中英

從 s3 讀取 csv 文件,不包括某些值

[英]Read a csv file from s3 excluding some values

如何從沒有幾個值的 s3 讀取 csv 文件。

例如:list [a,b] 除了值 a 和 b。 我需要讀取 csv 中的所有其他值。 我知道如何從 s3 讀取整個 csv。 sqlContext.read.csv(s3_path, header=True)但是如何從文件中排除這兩個值並讀取文件的其余部分。

你沒有。 文件是一種順序存儲介質。 CSV 文件是一種文本文件形式:它是字符索引的。 因此,要排除列,您必須首先讀取和處理字符以找到列邊界。

即使你神奇地找到這些邊界,你也必須seek那些位置。 這可能比簡單地讀取和忽略字符花費更多的時間,因為您會中斷驅動大多數文件緩沖的通常的、平滑的塊傳輸指令。

正如評論告訴您的那樣,只需按原樣讀取文件並丟棄不需要的數據作為數據清理的一部分。 如果您需要重復使用該文件,則將其清理一次,然后在您的程序中使用該版本。

如果你只想得到行,你可以使用S3 Select 和 Glacier Select – Retrieving Subsets of Objects | AWS 新聞博客 這是一種無需下載即可針對 S3 對象運行 SQL 的方法。

或者,您可以使用Amazon Athena通過 SQL 查詢 CSV 文件。

但是,下載整個文件並在 Python 應用程序中進行本地處理可能更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM