我正在尝试将csv文件导入SQLite表.
示例csv:
1,2
5,6
2,7
Run Code Online (Sandbox Code Playgroud)
示例命令:
sqlite> create table foo(a, b);
sqlite> separator ,
sqlite> .import test.csv foo
Error: test.csv line 1: expected 2 columns of data but found 4
Run Code Online (Sandbox Code Playgroud)
我甚至不确定为什么它会找到包含六个数据和两列的四列.有帮助吗?:)
我在这里的"大数据流程"中比较新,希望能找到一些关于如何处理50 GB csv文件的建议.目前的问题如下:
表看起来像:
ID,Address,City,States,... (50 more fields of characteristics of a house)
1,1,1st street,Chicago,IL,...
# the first 1 is caused by write.csv, they created an index raw in the file
Run Code Online (Sandbox Code Playgroud)
我想找到属于加利福尼亚州旧金山的所有行.它应该是一个简单的问题,但csv太大了.
我知道我有两种方法在R中执行它,另一种方法是使用数据库来处理它:
(1)使用R的ffdf包:
自上次保存文件以来,它使用的是write.csv,它包含所有不同的类型.
all <- read.csv.ffdf(
file="<path of large file>",
sep = ",",
header=TRUE,
VERBOSE=TRUE,
first.rows=10000,
next.rows=50000,
)
Run Code Online (Sandbox Code Playgroud)
控制台给了我这个:
Error in ff(initdata = initdata, length = length, levels = levels, ordered = ordered,
: vmode 'character' not implemented
Run Code Online (Sandbox Code Playgroud)
通过在线搜索,我找到了几个不适合我的案例的答案,我无法理解如何将"字符"转换为他们提到的"因素"类型.
然后我尝试使用read.table.ffdf,这更是灾难.我找不到那个坚实的指南.
(2)使用R的readline:
我知道这是另一种好方法,但找不到有效的方法来做到这一点.
(3)使用SQL:
我不知道如何将文件传输到SQL版本,以及如何处理这个,如果有一个很好的指南我想尝试.但总的来说,我想坚持使用R.
感谢您的回复和帮助!