我試圖從幾個json文件壓縮成一個tar來創建一個Spark RDD。 例如,我有3個文件將tar.gz壓縮成多個文件壓入Spark
file1.json
file2.json
file3.json
而這些都包含在archive.tar.gz
。
我想從json文件創建一個數據幀。問題是Spark沒有正確讀取json文件。使用sqlContext.read.json("archive.tar.gz")
或sc.textFile("archive.tar.gz")
創建RDD會導致亂碼/額外輸出。
是否有某種方法可以處理包含Spark中多個文件的gzip壓縮文件?
UPDATE
使用的答案給Read whole text files from a compression in Spark的方法我能得到的東西運行,但這種方法似乎並不適用於大型的tar.gz檔案(> 200 MB壓縮)作爲該應用程序在大檔案大小上窒息。由於我正在處理的一些壓縮文件的壓縮率高達2 GB我想知道是否有一些有效的方法來處理這個問題。
我試圖避免提取檔案,然後合併文件在一起,因爲這將是耗時的。
我面對大文件的同樣的問題,你找到一個解決方案(除了手動解壓縮,然後加載到火花)? :) – ixaxaar
@ixaxaar,我最終將所有的tar檔案轉換爲Spark很好地工作的hadoop序列文件。 https://stuartsierra.com/2008/04/24/a-million-little-files – septra
非常感謝罐子!我實際上有50個tar文件,每個文件有一百萬個小(json)文件:D – ixaxaar