Masalah saat memuat file CSV di Julia

Saya mencoba menggunakan Queryverse untuk memuat file csv, seperti ini

using Queryverse

df = load("my_file.csv"
        , delim = ";"
        , row_estimate = 215_000
        , type_detect_rows = 2_000) |> 
    DataFrame

tapi saya mendapatkan kesalahan berikut:

MethodError: no method matching UInt8(::String)

Mohon maaf, saya tidak bisa membagikan contoh filenya.

Pesan kesalahannya tidak terlalu informatif. Saya kira mungkin ada beberapa masalah dengan deteksi tipe baris - itu sebabnya saya bermain-main dengan parameter fungsi, tetapi sepertinya tidak berhasil.

Adakah yang bisa membantu?


person Georgery    schedule 19.10.2020    source sumber
comment
Saya tidak cukup mengenal Queryverse untuk mendiagnosis masalah sebenarnya, tetapi saya dapat menyarankan Anda untuk mencoba menggunakan CSV.jl untuk membaca file CSV - mungkin masalahnya akan teratasi? (khususnya di CSV.jl Anda tidak memiliki kwarg row_estimate dan type_detect_rows karena ini ditangani secara otomatis oleh paket tanpa petunjuk)   -  person Bogumił Kamiński    schedule 19.10.2020
comment
Pesan kesalahan mengatakan bahwa ia mencoba mengubah string menjadi UInt8. Saya kira Anda memiliki kolom yang 2000 baris pertamanya semuanya UInt8 tetapi kemudian menggunakan karakter lain dan dengan demikian pertama kali diurai sebagai string.   -  person mbauman    schedule 19.10.2020
comment
Itu sebabnya saya menyarankan menggunakan CSV.jl yang tidak memiliki masalah seperti itu, karena ia melakukan deteksi tipe otomatis dengan selalu mempertimbangkan semua baris yang dibaca.   -  person Bogumił Kamiński    schedule 19.10.2020


Jawaban (1)


Masalah dengan kode Anda adalah parameter delim yang seharusnya Char bukan String.

Jadi ini seharusnya:

df = load("my_file.csv"
        , delim = ';'
        , row_estimate = 215_000
        , type_detect_rows = 2_000) |> 
    DataFrame

Kesalahan yang Anda dapatkan terkait dengan pemrosesan parameter pembatas, bukan data dalam file Anda!

Namun demikian, biasanya opsi yang disarankan adalah menggunakan CSV.jl untuk membaca file csv daripada CSVFiles.jl yang digunakan oleh fungsi Queryverse.load.

person Przemyslaw Szufel    schedule 19.10.2020