我真的需要一些帮助。
我们收集引擎数据,这些数据以压缩文件的形式出现,文件名如data_XXXXXX.csv.gz
. 压缩后的这些文件大约为 50KB,解压缩后大约为 3.5MB。它们包含大约 7000 行数据,其中每行大约有 240 个值,以“;”分隔。
几行数据如下所示:
2015-04-04 03:03:21;DIG. Engine 1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:21;ANA. Engine 1;1609;0;0;1224;1601;0;0;0;0;260;0;0;0;0;0;0;0;84;0;921;22;28;310;390;364;357;0;289;293;289;289;298;305;298;302;306;297;320;297;314;303;308;301;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;424;372;24;2;0;4;0;2;8;740;432;444;2320;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2800;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;3;2;2;1;2;1;27;380;0;0;0;42717;14;0;0;0;0;0;0;0;0;0;0;5998;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;DIG. Engine 2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;ANA. Engine 2;1602;0;0;1012;1602;0;0;0;0;240;0;0;0;0;0;0;0;84;0;933;22;28;283;370;324;332;0;283;293;274;280;298;278;285;285;266;292;289;303;262;275;270;285;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;428;372;26;3;0;4;0;4;22;720;452;444;2288;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2825;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;3;2;2;3;2;1;27;384;0;0;0;44114;14;0;0;0;0;0;0;0;0;0;0;6002;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;DIG. Engine 3;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;ANA. Engine 3;1516;0;0;324;0;0;0;0;0;170;0;0;0;0;0;0;0;81;24;0;0;11;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;572;492;40;0;0;0;0;125;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2750;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;414;182;63;82;505;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;8;3;4;1;3;1;12;704;0;0;0;22382;4;0;0;0;0;0;0;0;0;0;0;8972;0;0;0;0;0;0;0;0;0;0;0;46679;12;0;0;0;0;0;0;0;0;0;0;0;0;0
通过 Python 脚本,我设法解压缩并编辑文件以在第一列和第二列之间添加一列,使用如下内容:
try:
for row in reader:
row.insert(1,InstallationName)
newdat.append(row)
except:#encountered a .gz file which was unable to be altered. let's prevent that!
f.close()
outfile.close()
else:
writer.writerows(newdat)
f.close()
outfile.close()
完成后,文件将使用 bulkimport 导入 MSSQL 数据库,因此我们确实需要一个干净的 .csv 文件!
输出的一个例子是:
2015-04-04 03:03:21;SOMETEXT;DIG. Engine 1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:21;SOMETEXT;ANA. Engine 1;1609;0;0;1224;1601;0;0;0;0;260;0;0;0;0;0;0;0;84;0;921;22;28;310;390;364;357;0;289;293;289;289;298;305;298;302;306;297;320;297;314;303;308;301;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;424;372;24;2;0;4;0;2;8;740;432;444;2320;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2800;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;3;2;2;1;2;1;27;361;0;0;0;42717;14;0;0;0;0;0;0;0;0;0;0;5998;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;SOMETEXT;DIG. Engine 2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;SOMETEXT;ANA. Engine 2;1602;0;0;1012;1602;0;0;0;0;240;0;0;0;0;0;0;0;84;0;933;22;28;283;370;324;332;0;283;293;274;280;298;278;285;285;266;292;289;303;262;275;270;285;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;428;372;26;3;0;4;0;4;22;720;452;444;2288;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2825;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;3;2;2;3;2;1;27;365;0;0;0;44114;14;0;0;0;0;0;0;0;0;0;0;6002;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;SOMETEXT;DIG. Engine 3;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2015-04-04 03:03:22;SOMETEXT;ANA. Engine 3;1516;0;0;324;0;0;0;0;0;170;0;0;0;0;0;0;0;81;24;0;0;11;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;572;492;40;0;0;0;0;125;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2750;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;414;182;63;82;505;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;7;0;0;4;8;3;4;1;3;1;12;332;0;0;0;22382;4;0;0;0;0;0;0;0;0;0;0;8972;0;0;0;0;0;0;0;0;0;0;0;46679;12;0;0;0;0;0;0;0;0;0;0;0;0;0
现在这可行,它会按照我想要的方式更改解压缩的 .csv 文件。但有一个缺点。文件的大小与脚本的结合让我很头疼,因为当它在多个文件上运行时,CPU 使用率飙升,服务器无法再跟上。
现在我一直在尝试使用表达式来加速这个过程,enumerate
但我就是无法得到我想要的输出。在逐行方式每个文件最多需要 10 秒的情况下,枚举方式在大约 3 秒内给了我“一个”文件。我说“a”文件是因为我无法让输出与输入相匹配(添加了列)。
最后,我们使用的系统/软件基于 Python 2.X(实际上是 Jython)。
我知道这是让这个工作的地方,如果您有任何问题,请尽管提问!