Lendo vários arquivos compactados no arquivo tar.gz no Spark [duplicado]
Esta pergunta já tem uma resposta aqui:
Leia arquivos de texto inteiro de uma compactação no Spark 2 respostasEstou tentando criar um Spark RDD a partir de vários arquivos json compactados em um alcatrão. Por exemplo, eu tenho 3 arquivos
file1.json
file2.json
file3.json
E estes estão contidos emarchive.tar.gz
.
Eu quero criar um quadro de dados a partir dos arquivos json. O problema é que o Spark não está lendo os arquivos json corretamente. Criando um RDD usandosqlContext.read.json("archive.tar.gz")
ousc.textFile("archive.tar.gz")
resulta em saída ilegível / extra.
Existe alguma maneira de lidar com arquivos compactados em gzip contendo vários arquivos no Spark?
ATUALIZAR
Usando o método fornecido na resposta paraLeia arquivos de texto inteiro de uma compactação no Spark Consegui fazer as coisas funcionarem, mas esse método não parece ser adequado para grandes arquivos tar.gz (> 200 mb compactados), pois o aplicativo é utilizado em tamanhos grandes de arquivos. Como alguns dos arquivos que estou lidando com tamanhos de alcance até2 GB após a compactação, estou me perguntando se existe alguma maneira eficiente de lidar com o problema.
Estou tentando evitar a extração dos arquivos e a mesclagem dos arquivos, pois isso consumiria muito tempo.