我读到了这一点:使用Python将CSV文件导入sqlite3数据库表
并且似乎每个人都建议使用逐行阅读而不是使用SQLite的批量.import.但是,如果您有数百万行数据,这将使插入真的很慢.有没有其他方法来规避这个?
更新:我尝试了以下代码逐行插入,但速度不如我预期的那么好.无论如何都要改进它
for logFileName in allLogFilesName:
logFile = codecs.open(logFileName, 'rb', encoding='utf-8')
for logLine in logFile:
logLineAsList = logLine.split('\t')
output.execute('''INSERT INTO log VALUES(?, ?, ?, ?)''', logLineAsList)
logFile.close()
connection.commit()
connection.close()
Run Code Online (Sandbox Code Playgroud) 目前,我的数据如下所示:
1 A a
1 A b
2 B b
2 B c
3 A a
3 B b
3 C c
Run Code Online (Sandbox Code Playgroud)
我想根据第一列中的数据将它们存储在不同的文件中.所以,我希望我的输出与此类似
1.out 包含
A a
A b
Run Code Online (Sandbox Code Playgroud)
2.out 包含
B b
B c
Run Code Online (Sandbox Code Playgroud)
3.out 包含
A a
B b
C c
Run Code Online (Sandbox Code Playgroud)
无论如何使用带有/不带UDF的Pig来实现这个目的吗?
非常感谢你.