[英]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.