使用C#分析大数据而不抛出OutOfMemory

时间:2015-06-24 20:35:28

标签: c# excel bigdata

当我尝试分析大数据中的选择性列时,我总是抛出OutOfMemory

我的大数据存储在单独的Excel文件中。每个文件有超过22列和超过222330条记录。

我需要阅读选择性列然后进行统计分析。我将这些选择性列读入Datatable然后for loop以研究内容。

如下面的代码:

        OleDbDataAdapter adapter_sido_Class4 = new OleDbDataAdapter("Select [Kvalitetsklass (null)],[Sido kortvåg vänster (null)], [Sido mellanvåg vänster (null)], [Sido långvåg vänster (null)]," + "[Sido kortvåg höger (null)], [Sido mellanvåg höger (null)], [Sido långvåg höger (null)]" + " from [Sheet1$]" + " where ([Kvalitetsklass (null)] = 4)", connection);

        DataTable dt_sido_Class4 = new DataTable();

        adapter_sido_Class4.Fill(dt_sido_Class4);

        for (int i = 0; i < dt_sido_Class4.Rows.Count; i++)
        {
            if (dt_sido_Class4.Rows[i].Field<double>(1) == 0)
            {
                sido_count10v++;

            }
            else if (dt_sido_Class4.Rows[i].Field<double>(4) == 0)
            {
                sido_count10h++;

            }
            else if (dt_sido_Class4.Rows[i].Field<double>(1) == null)
            {
                sido_count11v++;

            }
        }

我使用Where条件处理数据堆而不是空洞数据。

在相同的代码中,我尝试添加更多其他列并进行其他分析,但我总是遇到OutOfMemory异常。虽然,我使用Dispose()Close()在内存中留出空间用于其他计算。

您有什么建议来处理这些大数据?

谢谢,

0 个答案:

没有答案