2016-11-30 5 views
1

私は、それぞれ709.7MBの8つのcsvファイルに分割されたS3バケット内にデータフレームを持っています。S3からpysparkのEMRクラスタのノードにファイルをロード

私は8ノード(r3.4xlarge:16 vCPU、122 RAMと320ディスク)でEMRクラスタを作成します。

マイスパーク構成は以下のとおりです。

num-executors='23' 
executor-memory='34G' 
executor-cores='5' 

私は私のデータフレームをロードするために、このPythonスクリプトを記述します。

df = sqlContext.read.load("s3://my-bucket/my-dataframe/*", 
           format='com.databricks.spark.csv', 
           header='true', 
           delimiter='\t', 
           inferSchema='true') 

問題: 私はスパーク履歴サーバでステージを見て、ここに結果があります。

enter image description here

3つのCSVファイルが正しくロードされていません。 誰かがこの問題を解決する解決策を持っているか、原因の考えをしてください。

答えて

0

レポートが混乱している場合は、実際の出力をご覧ください。

BTWでは、inferSchemaオプションを使用すると、CSVファイル全体のスキャンが強制的にスキーマを実行します。ここでは、700MB /ファイルから1400MBに読み込まれるデータ量が倍増します。長距離のデータを使用している場合は、請求書が2倍になります。地元であれば、それはまだずいぶん時間がかかります。スキーマを1回ワークアウトし、DFで宣言します。

関連する問題