2016-05-05 24 views
10

Ben iki tür dosyaları (A.csv & B.csv)(piton)

/data/jan.zip içeren birden fazla zip dosyaları var kıvılcım kullanarak zip dosyası içinde bir CSV dosyasının içeriğini nasıl okunur? - > A.csv & B.csv içeren
/data/feb.zip -> A.csv & B.csv

bütün zip dosyaları içindeki tüm A.csv dosyalarının içeriğini okumak istiyorum içeren pyspark kullanarak.

textFile = sc.textFile("hdfs://<HDFS loc>/data/*.zip") 

Birisi bana A.csv dosyalarının içeriğinin bir RDD'ye nasıl alınacağını söyleyebilir mi?

+2

Bu http://stackoverflow.com/questions/32080475/how-to-read-a-zip-containing-multiple-files-in-apache-spark – Himaprasoon

+0

[kadar tüm metin dosyalarını okuyun yardımcı olabilecek Spark'de bir sıkıştırma] (http://stackoverflow.com/q/36604145/1560062) – zero323

+0

Bu bağlantı size yardımcı olabilir https://docs.python.org/2/library/zipfile.html –

cevap

0

Burada zip dosyaları içindeki tüm csv dosyalarını yinelemeli olarak okumak istersiniz.

val files = sc.CSVFiles("file://path/to/files/*.zip") 
files.flatMap({case (name, content) => 
    unzip(content) 
}) 

def unzip(content: String): List[String] = { 
    ... 
}