gzipで圧縮されたCSVファイルの読み取り中に奇妙な文字[重複]

Jan 12 2021

UTF-8エンコードファイルとして保存したCSVファイルを読み込もうとしています。Pandasでファイルを読み込もうとすると、かなりの時間がかかりますが、目的の出力が得られます。

out_pd = pd.read_csv('../files/example_file_out.csv.gzip', sep='\t', encoding='utf-8', compression='gzip')

Sparkでほぼ同じことを実行して、HDFSからまったく同じファイルを読み取ります。

out_spark = spark.read.format('csv').options(header = "true", sep = "\t", encoding = "UTF-8").load("/Path/to/Folder/example_file_out.csv.gzip" )
out_spark.show()

この結果で:

+ -------------------------------------------------- -------------------------------------------------- -+ | _ example_file_out.csv.gzip Ѳ Fr$�|�l�A?��̈��L��F��cWZ�F��Ef�^�5C�k�hW���H$ j xH? } N | + ------------------------------------------------- -------------------------------------------------- -+ | @ # "<= <^ ... | |? ϟ Ͽ O ... | | x o e> Y ... | + -------------------------------------- -------------------------------------------------- -------------- +

何が間違っているのか本当にわかりません。よろしくお願いします!

回答

mck Jan 12 2021 at 03:18

Sparkは、ファイル拡張子を使用してファイル圧縮形式を推測します。デフォルトでは、gzip圧縮されたファイルの拡張子.gzはです。したがって、ファイルの名前をのでは.gzなく拡張子に変更すると.gzip、Sparkはcsvファイルを適切に解凍できるはずです。