非常に大きなサイズのCSVファイルのデータを解析してソートする必要があります。ファイルは実際には600K行程度の大きさであることに注意してください。私はそれをどこに保存するか、DBにインポートする必要はありません。この実装を効率的に行う方法を教えてください。私はあなたの共有経験に感謝します。私はこのようにそれを行うだろうCSVファイルを読む?
答えて
...
var list = new List<float>(10000);
using (var fs = new StreamReader(new FileStream("file.csv", FileMode.Open, FileAccess.Read, FileShare.None, 8192, FileOptions.SequentialScan)))
{
var line = fs.ReadLine();
var columns = line.Split(',');
list.Add(Convert.ToSingle(columns[5]));
}
// Sort the list and do your calculations...
お知らせFileOptions.SequentialScan
、またと遊ぶbufferSize
また...前より良い結果を得るために(デフォルト値は4096または8192であるかどうかわかりません)一覧のサイズを変更しないようにリストサイズを割り当てます。
ありがとう@マイケル、ただ1つの列を読むことはできますか?私は列を読むのが効果的でしょうか? – user576510
@ user576510すべての列/列の内容の幅/長さが固定されている場合は、列の直前にファイルカーソルを配置し、内容を読み取り、nバイトを次の行の列にジャンプすることができます。しかし、通常のcsvファイルでは、データ列がどこで始まり、現在の行が終わったのかわからないので、可変長列と仮定して答えはノーです。 – Michael
parse [this csv](http: /imgur.com/a/url59)。 –
外部ソートを使用して大きなファイルの並べ替えを処理する方法の1つです。それらをすぐに提供する数多くのCSVライブラリがあります。
Cinchoo ETLには、外部ソート機能を持つCSVReaderがあります。あなたはあなたの目的のためにそれを活用することができます
a。 CSVレコードを表すPOCOクラスを定義します。重要:クラスをシリアライズ可能として、外部ソートの対象としてマークします。
[Serializable]
public class Customer
{
[ChoCSVRecordField(1)]
[Key]
public int Id { get; set; }
[ChoCSVRecordField(2)]
public string Street { get; set; }
[ChoCSVRecordField(4)]
public string City { get; set; }
[ChoCSVRecordField(6)]
public string Zip { get; set; }
}
b。列に対してソートする比較クラスを作成する(例:都市別ソート)
c。最後に、ChoCSVReaderを使用してCSVファイルを読み込みます。それらをソートするにはExternalSortingメソッドに渡してください。
foreach (var e in new ChoCSVReader<Customer>("Test.txt").WithDelimiter("\t").ExternalSort(new AddressCityComparer()))
Console.WriteLine(e.City);
希望します。
- 1. エラー読むファイルCSV
- 2. TensorFlowでCSVファイルを読む
- 3. csvファイルをC++で読む
- 4. Laravel 5.4 - csvファイルを読む
- 5. PythonでCSVファイルを読む
- 6. CSVファイルを読むには?
- 7. PythonでCSVファイルを読む
- 8. CSVファイルを読み込んでCSVファイルに書き込む
- 9. fgetsを使って.CSVファイルを読む
- 10. JavaScriptを使ってcsvファイルを読む
- 11. Pythonでマルチティアcsvファイルを読む
- 12. csvファイルをDataTableに読み込む
- 13. Spark 2.1.0:圧縮CSVファイルを読む
- 14. C - char配列のCSVファイルを読む
- 15. リモートcsvファイルをダウンロードせずに読む
- 16. CSVファイルをぎこちなく読む
- 17. PHPでCSVファイルのデータを読む
- 18. ビーカーノートブックでcsvファイルを読むには?
- 19. CSVファイルからPythonを読む
- 20. 巨大な.csvファイルを読む
- 21. Webプロジェクトで.csvファイルを読む
- 22. C++でCSVファイルを読む方法
- 23. Springブートアプリケーションでcsvファイルを読む
- 24. angularjsでcsvファイルを読む方法
- 25. リソースフォルダ内のCSVファイルを読むandroid
- 26. C#SQL条件でCSVファイルを読む
- 27. CSVファイルを辞書に読み込む?
- 28. MATLABでCSVファイルを読み込む?
- 29. インデックスでCSVファイルを読むJava
- 30. Rでcsvファイルを読むには?
なぜ中央値が必要な場合はソートする必要がありますか? – jdweng
[RFC 4180](https://tools.ietf.org/html/rfc4180)を読んで、CSV全体の画像を取得してから、RFC 4180 –
http://www.filehelpersに従ってCSVデータを処理するライブラリを検索してください.net/example/Sorting/SortBigFiles/ –