s*****n 发帖数: 839 | 1 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这
么大的文件。
想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***;
这样的工作。 然后把选出来的小块数据读到数据库里去用。
有没有大侠给指点一二?
怎么做啊? 急等。
谢谢! |
m*******l 发帖数: 12782 | 2 stream editor + regular expression
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
s*****n 发帖数: 839 | 3 能不能说得详细点? 我是菜鸟。
谢谢了!!
【在 m*******l 的大作中提到】 : stream editor + regular expression : : ;
|
s*********e 发帖数: 1051 | 4 do the chunk read with pandas package
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
a****e 发帖数: 9589 | 5 sed
http://linux.about.com/od/commands/l/blcmdl1_sed.htm
like:
sed '/regexp_of_what_you_want/p' file.csv > result.csv |
o*******p 发帖数: 27 | 6 如果redirect输出到文件,只要4行就好了,
for line in open('big.csv'):
fields = line.split(',')
if fields[n] = 'keep': # the where clause
print line
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
s*****n 发帖数: 839 | 7 太谢谢楼上的各位哥哥姐姐弟弟妹妹了。
我真的是菜鸟,所以只看懂了oceandeep的回复。
不过怎么把选出来的数据存起来啊? 存到csv file. |
a****e 发帖数: 9589 | 8 我是大叔
with open('result.csv', 'w+') as result:
with open('big.csv', 'r') as big:
for line in big:
if line.split(',')[n] == 'what you want':
result.write(line)
【在 s*****n 的大作中提到】 : 太谢谢楼上的各位哥哥姐姐弟弟妹妹了。 : 我真的是菜鸟,所以只看懂了oceandeep的回复。 : 不过怎么把选出来的数据存起来啊? 存到csv file.
|
s*********e 发帖数: 1051 | 9 SQLite?
【在 s*****n 的大作中提到】 : 太谢谢楼上的各位哥哥姐姐弟弟妹妹了。 : 我真的是菜鸟,所以只看懂了oceandeep的回复。 : 不过怎么把选出来的数据存起来啊? 存到csv file.
|
r*******n 发帖数: 3020 | 10 文件有多大?
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
|
|
t****a 发帖数: 1212 | 11 不要用python,用awk就够啦!awk是linux里处理csv,tsv之类的最好最方便的工具,不
用费力气去写python程序。google一下awk的wiki就知道怎么用了。
另外你的文件很大,我猜测你用的是多CPU的linux服务器。这种情况下并行处理可能会
更快一些。我知道的办法是split成小文件以后,ls|xargs awk...|cat 再加并行的参
数 (好像是-P)之后可以合并结果文件。
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
h***t 发帖数: 2540 | 12 check sqlite3 module in python, it provides interface for SQL commands in
python
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
r*****d 发帖数: 727 | 13 为什么不用perl写,里面有match pattern,方便简单。你稍微google一下就行
http://work.lauralemay.com/samples/perl.html |
E*****m 发帖数: 25615 | |
H****S 发帖数: 1359 | 15 这个用awk肯定最方便,没有之一。
awk -F',' '{if () print $0}'
http://www.grymoire.com/Unix/Awk.html
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|
z*******h 发帖数: 346 | 16 build a Hadoop cluster and use Hive.
;
【在 s*****n 的大作中提到】 : 我有一个大的csv数据文件,超过 1 billion 条数据。 我们的数据库都不能处理这 : 么大的文件。 : 想用Python选一部分数据出来,就是做类似于sql: select *** from *** where ***; : 这样的工作。 然后把选出来的小块数据读到数据库里去用。 : 有没有大侠给指点一二? : 怎么做啊? 急等。 : 谢谢!
|