私は同じプレフィックスを持ついくつかのフォルダ(s3上)に編成された15万個以上の.csv.gzファイルを持っています。各ファイルのサイズは約550KBです。私の目標は、これらのファイルをすべて1つのDataFrameに読み込むことです。合計サイズは約80GBです。Spark 2.0.0:多くの.gzファイルを読み込みます
私は、まともなクラスタで、c4.8xlarge (36 vCPU、60 GiBメモリ、EBSストレージ:100 GiB)の3つのインスタンスを使用しています。
私はパスにワイルドカード文字を使用してファイルを読んでいます:
sc.textFile("s3://bucket/directory/prefix*/*.csv.gz")
それから私はいくつかのマップの操作を行うと、私はtoDF("col1_name", "col2_name", "col3_name")
を呼び出すことにより、データフレームにRDDを変換します。次に、新しい列を作成するためのUDFへの呼び出しをいくつか行います。
私がdf.show()
と呼ぶとき、操作は長時間かかるし、決して終了しません。
なぜプロセスが非常に時間がかかるのだろうか?
多数の.csv.gzファイルが問題になっていますか?