Как сохранить большой массив записей F # в файл?

Я хочу сохранить большой массив записей f # (> 10 000 000 элементов) на диск, чтобы впоследствии было проще перезагрузить массив в память. Я использовал следующую простую функцию из Visual F # 2010 для технических вычислений:

let save filename x =
    use stream = new FileStream(filename, FileMode.Create)
    BinaryFormatter().Serialize(stream, x)

type Test = { a : int; b : int}

let x = [| for i in 1..6 do 
            let a=i
            let b=i*i
            yield {a=a;b=b}|]

save "file.dat" x

Когда я делаю это (с реальными данными), я получаю ошибку:

System.Runtime.Serialization.SerializationException: The internal array cannot expand to greater than Int32.MaxValue elements.

Прямо сейчас, мое решение состоит в том, чтобы преобразовать в Deedle и затем сохранить как CSV, но я предполагаю, что есть более эффективный в вычислительном отношении вариант для сохранения / перезагрузки, который не требует перестройки массива из CSV.

let x2 = x |> Frame.ofRecords
x2.SaveCsv("file.csv")

Ответы на вопрос(1)

Ваш ответ на вопрос