我需要在如此巨大的XLS表(〜150列,〜1.000.000行)上进行计算,Excel会自行冻结。我决定将数据迁移到Oracle表中。
这些列具有所有基本数据类型:int,float,char,字符串,日期
我有两个选择:
我现在使用Python使用默认的varchar tpye创建表:
list_of_columns = parseFirstLine_CSV(.\data.csv)
columns = ['"%s" varchar2(255)' % n for n in list_of_columns]
sql = "create table SomeTableName (%s)" % ",".join(columns)
cursor.execute(sql)
让我们看一下这张桌子。让我们假设并非每一行都是完整的。 xls中自然会提供“关键”数据,这只是一个示例。
ID Company Date Quality
144 Apple 2019.01.03 ""
"" IBM 2019.01.03 200
105591 Oracle 2019.01.03 9
10R91 Microsoft "" 113
10M99 "" 2019.01.03 3
1076a Walmart "" ""
10M95 Lorem Co. 2019.01.03 3
我将使用Python,但这不是重点。
我的理论问题是:如果我不确定每列的CSV中的行是否完整,那么如何确定类型(所以我不能只看第二条csv行)以获取类型列表)。我应该遍历CSV行,直到获得所有类型,或者是否有更简单的算法?
我认为在表中使用适当的类型比长varchar更干净,因此我可以在其中进行更清晰的查询。
编辑:在完成实现后,我将在Python 3中包含代码,同时我只是对其他观点感兴趣。