web-dev-qa-db-ja.com

spark DFまたはDS?

.gz形式の圧縮ファイルがあります。spark DF/DSを使用してファイルを直接読み取ることはできますか?

詳細:ファイルはタブ区切りのcsvです。

4
prady

圧縮されたcsvの読み取りは、圧縮されていないcsvファイルの読み取りと同じ方法で行われます。 Sparkバージョン2.0+の場合、Scala(タブ区切り文字の追加オプションに注意)を使用して、次のように実行できます。

val df = spark.read.option("sep", "\t").csv("file.csv.gz")

PySpark:

df = spark.read.csv("file.csv.gz", sep='\t')

考慮すべき唯一の追加の考慮事項は、gzファイルが分割可能ではないことです。したがって、Sparkは、単一のコアを使用してファイル全体を読み取る必要があり、速度が低下します。読み取りが完了した後、データをシャッフルして並列処理を増やすことができます。