S3 には、snappy 圧縮アルゴリズム (node-snappy
パッケージを使用) を使用して圧縮された csv ファイルがいくつかあります。Spark を使用してこれらのファイルを処理しcom.databricks.spark.csv
たいのですが、常に無効なファイル入力エラーが発生します。
コード:
file_df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true', codec='snappy', mode='FAILFAST').load('s3://sample.csv.snappy')
エラーメッセージ:
16/09/24 21:57:25 WARN TaskSetManager: ステージ 0.0 でタスク 0.0 が失われました (TID 0、ip-10-0-32-5.ec2.internal): java.lang.InternalError: データを解凍できませんでした。入力が無効です。org.apache.hadoop.io.compress.snappy.SnappyDecompressor.decompressBytesDirect(ネイティブメソッド)で org.apache.hadoop.io.compress.snappy.SnappyDecompressor.decompress(SnappyDecompressor.java:239)で org.apache.hadoop. io.compress.BlockDecompressorStream.decompress(BlockDecompressorStream.java:88) at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:85) at java.io.InputStream.read(InputStream.java:101) org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180) で org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216) で org.apache.hadoop.util.LineReader.readLine (LineReader.java: