0
我在S3中以文本格式(.gz)有一個數據集,我正在使用spark.read.csv將文件讀入火花。火花如何讀取文本格式文件
這是大約100GB的數據,但它包含150列。我只使用5列(所以我減少了數據的寬度),我只選擇了5列。
對於這種場景,確實能夠掃描完整的100GB數據,或者它巧妙地只過濾這5列而不掃描所有列(如列狀格式)?
任何幫助,將不勝感激。
imp_feed = spark.read.csv('s3://mys3-loc/input/', schema=impressionFeedSchema, sep='\t').where(col('dayserial_numeric').between(start_date_imp,max_date_imp)).select("col1","col2","col3","col4")
請添加從S3讀取數據的代碼,然後選擇列。 – Yaron
你在開玩笑嗎? CSV不是*列式格式,您必須按字節逐字節解析,以檢測列/記錄分隔符。另外,GZip壓縮文件必須按位逐位解壓縮。另外,AFAIK,S3文件不是爲隨機訪問而設計的。 –
是的,這就是我的恐懼。我們的日常加載到S3,他們是文本和GZip格式。所以,基本上它完全處於火花之中(更多的,gzip文件在解壓縮後會長到5到6倍) – braj259