0

現在、R を使用して分析を実行しています。

Rを使用して処理したいヘッダーがすべて同じCSVファイルが多数あります。もともと、各ファイルをRに順番に読み込み、一緒に分析を実行する前にそれらを行バインドしていました。

読み込む必要のあるファイルの数が増えているため、データを操作するためにすべてのファイルをメモリに保持することは、現実的ではなくなりつつあります。

Rを使用せずにすべてのCSVファイルを結合できるため、メモリに保持しません。これにより、関連する分析を実行できるようにするために、巨大な CSV ファイルを HDFS に変換することは理にかなっていますか? これに加えて...または、各csvファイルの分析を個別に実行し、最後に結合する方が理にかなっていますか?

おそらく、分散ファイル システムと、Amazon のマシンのクラスターを使用して分析を効率的に実行できると考えています。

rmr hereを見ると、データを HDFS に変換しますが、実際には大きなデータには驚くべきことではないようです...効率的な分析を可能にする方法で csv を変換するにはどうすればよいでしょうか?

4

2 に答える 2

0

複合 csv ファイルを hdfs に構築できます。まず、最初に空の hdfs フォルダーを作成できます。次に、各 csv ファイルを個別に hdfs フォルダーにプルします。最終的に、フォルダーを単一の hdfs ファイルとして扱うことができます。

ファイルを hdfs にプルするには、ターミナル for ループ、rhdfs パッケージを使用するか、ファイルをメモリ内にロードし、ユーザーを .dfs にロードします (ただし、最後のオプションはお勧めしません)。ファイルからヘッダーを削除することを忘れないでください。

rmr2 を使用して、まず csv をネイティブの hdfs 形式に変換してから、それに対して分析を実行することをお勧めします。大量のデータを処理できる必要があります。

于 2015-02-13T18:08:06.823 に答える
0

HDFS はファイル システムであり、ファイル形式ではありません。HDFS は実際には小さなファイルをうまく処理できません。通常、デフォルトのブロック サイズが 64MB であるため、1B から 63MB までのファイルには 64MB のスペースが必要です。

Hadoop は、巨大なファイルを処理するのに最適です。したがって、すべての小さなファイルを HDFS 上の 1 つの巨大なファイルに連結して、Hadoop ツールの処理時間を短縮するのが最善です。

hdfs dfs -cat myfiles/*.csv | hdfs dfs -put - myfiles_together.csv
于 2015-02-13T22:28:06.113 に答える