UNIX Импорт LARGE CSV в SQLite - PullRequest
       28

UNIX Импорт LARGE CSV в SQLite

5 голосов
/ 04 декабря 2010

У меня есть 5-гигабитный CSV-файл (также как файл данных sas, если это будет проще), который мне нужно поместить в базу данных sql, чтобы я мог работать с ним в R.

Имена переменныхвсе они содержатся в первой строке наблюдения и заключены в двойные кавычки.Существует более 1000 переменных, некоторые из числовых других символов (хотя некоторые из символьных переменных являются строками цифр, но я не слишком беспокоюсь об этом, я могу исправить это в R).

Мой вопрос: как можноЯ импортирую файл csv в новую таблицу в своей базе данных с минимальными трудностями?

Я обнаружил, что сначала нужно создать таблицу (включая указание всех переменных, из которых у меня 1000+), а затемиспользуя "таблицу файлов .import" для ввода данных.Или использовать мастер импорта графического интерфейса, который мне не подходит.

Извините, если это sql 101, но спасибо за помощь.

Ответы [ 2 ]

9 голосов
/ 04 декабря 2010

Вот мой рабочий процесс:

library("RSQLite")
setwd("~/your/dir")
db <- dbConnect(SQLite(), dbname="your_db.sqlite") ## will make, if not present
field.types <- list(
        date="INTEGER",
        symbol="TEXT",
        permno="INTEGER",
        shrcd="INTEGER",
        prc="REAL",
        ret="REAL")
dbWriteTable(conn=db, name="your_table", value="your_file.csv", row.names=FALSE, header=TRUE, field.types=field.types)
dbGetQuery(db, "CREATE INDEX IF NOT EXISTS idx_your_table_date_sym ON crsp (date, symbol)")
dbDisconnect(db)

field.types не обязательно. RSQLite будет догадываться из заголовка, если вы не предоставите этот список. Индекс также не требуется, но он ускорит ваши запросы позже (если вы индексируете правильный столбец для ваших запросов).

Я много чего изучал здесь, в SO, поэтому, если вы проверите мои вопросы, заданные / отвеченные на SQLite, вы можете найти некоторые теги.

4 голосов
/ 04 декабря 2010

Посмотрите на функцию "read.csv.sql" в пакете sqldf.

Это преобразует CSV-файл в базу данных SQLite, а затем считывает его в R, вы должны иметь возможность сохранить промежуточную базу данных для использования в ваших целях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...