CN118113380B - Csv文件的数据加载方法、装置、设备以及存储介质 - Google Patents
Csv文件的数据加载方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN118113380B CN118113380B CN202410534163.1A CN202410534163A CN118113380B CN 118113380 B CN118113380 B CN 118113380B CN 202410534163 A CN202410534163 A CN 202410534163A CN 118113380 B CN118113380 B CN 118113380B
- Authority
- CN
- China
- Prior art keywords
- loaded
- csv file
- file
- state information
- csv
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000000926 separation method Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 12
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000001394 sodium malate Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了一种CSV文件的数据加载方法、装置、设备以及存储介质,应用于数据存储技术领域。所述方法包括获取待加载CSV文件;提取待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成待加载CSV文件对应的缓冲文件;其中,缓冲文件用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;基于缓冲文件,加载待加载CSV文件。以此方式,可以加快对数据的分析,无需再基于人工操作对逗号和换行符进行进一步分析定位,从而有效加快对CSV文件的处理速度,进而提高数据处理效率。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及数据存储技术领域,具体涉及一种CSV文件的数据加载方法、装置、设备以及存储介质。
背景技术
逗号分隔值(Comma-Separated Values,CSV)是一种常用的数据格式,在绝大多数领域有着较高的使用频率,例如随着大数据时代的到来,CSV被广泛用于数据的存储和交互中。在使用CSV格式存储数据时,一般使用逗号对值进行分隔,或者使用换行符对行进行分隔,但是值中也可能存在逗号和换行符。基于此,在对CSV文件进行数据加载时,每次加载都需要先定位逗号和换行符,再基于人工操作对逗号和换行符进行进一步分析定位,导致数据处理效率较低。
发明内容
本公开提供了一种CSV文件的数据加载方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种CSV文件的数据加载方法。该方法包括:
获取待加载CSV文件;
提取所述待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,所述值状态信息为用于表征当前字符是在所述待加载CSV文件中引号内的值,或者是所述待加载CSV文件中值间的预设符号的信息;所述边界状态信息为用于表征所述待加载CSV文件中边界切换的位置信息;
根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件;其中,所述缓冲文件用于描述所述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;
基于所述缓冲文件,加载所述待加载CSV文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件包括:
根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,检测所述待加载CSV文件中逗号和换行符是否表示值;
若检测到表示值的逗号和/或换行符,则从所述逗号和换行符的位置信息中删除表示值的逗号和/或换行符对应的位置信息;
根据执行删除操作后的逗号和换行符的位置信息,生成所述待加载CSV文件对应的缓冲文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述预设偏移量为1字节、2字节、4字节或者8字节。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述缓冲文件,读取所述待加载CSV文件包括:
根据所述缓冲文件中描述所述待加载CSV文件中逗号和换行符的位置,对所述待加载CSV文件进行分块处理和批量读取,完成对所述待加载CSV文件的全文加载。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述缓冲文件,读取所述待加载CSV文件包括:
根据所述缓冲文件中描述每行的起始位置以及每个值的预设偏移量,逐行对所述待加载CSV文件中预设目标值进行读取,完成对所述待加载CSV文件的指定列加载。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述缓冲文件,读取所述待加载CSV文件包括:
根据所述缓冲文件中描述每行的起始位置,对所述待加载CSV文件中预设目标行进行读取,完成对所述待加载CSV文件的指定行加载。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取待加载CSV文件包括:
采用流式文件读取目标CSV文件,得到待加载CSV文件。
根据本公开的第二方面,提供了一种CSV文件的数据加载装置。该装置包括:
获取模块,用于获取待加载CSV文件;
提取模块,用于提取所述待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,所述值状态信息为用于表征当前字符是在所述待加载CSV文件中引号内的值,或者是所述待加载CSV文件中值间的预设符号的信息;所述边界状态信息为用于表征所述待加载CSV文件中边界切换的位置信息;
生成模块,用于根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件;其中,所述缓冲文件用于描述所述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;
加载模块,用于基于所述缓冲文件,加载所述待加载CSV文件。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
本申请实施例提供的一种CSV文件的数据加载方法、装置、设备以及存储介质,能够通过获取待加载CSV文件;再提取待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;再根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量的缓冲文件,直接利用缓冲文件对待加载CSV文件进行加载,加快对数据的分析,无需再基于人工操作对逗号和换行符进行进一步分析定位,从而有效加快对CSV文件的处理速度,进而提高数据处理效率。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的CSV文件的数据加载方法的流程图;
图2示出了根据本公开的实施例的CSV文件的数据加载装置的框图;
图3示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,可以生成用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量的缓冲文件,直接利用缓冲文件对待加载CSV文件进行加载,加快对数据的分析,无需再基于人工操作对逗号和换行符进行进一步分析定位,从而有效加快对CSV文件的处理速度,进而提高数据处理效率。
图1示出了根据本公开实施例的CSV文件的数据加载方法100的流程图。
在框110,获取待加载CSV文件。
在一些实施例中,待加载CSV文件可以是根据用户实际需求,获取的CSV文件。
在一些实施例中,待加载CSV文件可以是程序之间转移表格数据所输入或输出的CSV文件。
表1:程序之间转移的表格数据
例如,表1示出了程序之间转移的表格数据,而程序之间转移表格数据所输入或输出的CSV文件可以表示为下列数据:
年,制造商,型号,说明,价值
1997,Ford,E350,"ac,abs,moon",2000.00
1998,Chevy,"Venture ""Extended Edition""","",3900.00
1999,Chevy,"Venture ""Extended Edition,Very Large""","",4000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air,moon roof,loaded",3799.00
从上述CSV文件可知,在CSV文件中,CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符。字段包括的特殊符号,如逗号、换行符或者双引号需要以双引号括住,行内包括一个项目是空字符串,可以以双引号括住。字段的值包含双引号时,要双写这个双引号,即就像把一个双引号当做转义符一样。
在一些实施例中,CSV文件中特殊符号的表示可以如下列所示:
char br = '\n'; // 表示当前行的结束;
char ch = 'a'; // 表示是常规字符;
char sp = 's'; // 表示引号内和引号外的边界状态;
char qt = '\"'; // 表示引号;
char cm = ','; // 表示逗号。
在框120,提取待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,值状态信息为用于表征当前字符是在待加载CSV文件中引号内的值,或者是待加载CSV文件中值间的预设符号的信息;边界状态信息为用于表征待加载CSV文件中边界切换的位置信息。
在一些实施例中,可以通过遍历待加载CSV文件,对待加载CSV文件中逗号和换行符进行定位,提取逗号和换行符的位置信息。
具体地,由于CSV是使用逗号对值进行拆分,所以,在对逗号和换行符的位置信息进行提取时,需要提取每个逗号和每个换行符的位置信息。
在一些实施例中,由于CSV文件中存在大量的转义内容,所以当前字节可能是在一对引号中表示值,这时换行符或逗号都是按值来处理;同时还需要兼顾逗号和换行符在引号外的情况,即逗号表示值的分隔,换行符表示每条记录的分隔,因此,在逐字节处理时,使用一个状态变量进行表示,即用值状态信息来表征当前字符是在待加载CSV文件中引号内的值,或者是待加载CSV文件中值间的预设符号的信息。
在一些实施例中,为了进一步区分引号的状态,可以对引号和非引号两种状态的边界进行定义,记录边界切换的位置,即用边界状态信息来表征待加载CSV文件中边界切换的位置信息。
在框130,根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成待加载CSV文件对应的缓冲文件;其中,缓冲文件用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量。
在一些实施例中,对于m行n列的CSV文件,生成的待加载CSV文件对应的缓冲文件的格式可以如下所示:
第1行起始位置,偏移量1,偏移量2,...,偏移量n
第2行起始位置,偏移量1,偏移量2,...,偏移量n
...
第m行起始位置,偏移量1,偏移量2,...,偏移量n
其中,第m行的起始位置表示第m行的第一个字节在文件中的字符偏移量。偏移量n表示当前行的第n个元素在文件中字节相对于起始位置的结束位置的偏移量。
在一些实施例中,第m行的起始位置可以使用8字节的long类型表示,以便支持超过4GB的超大文件。
在一些实施例中,预设偏移量可以根据实际需求由人为设备。
在框140,基于缓冲文件,加载待加载CSV文件。
在一些实施例中,在根据获取的待加载CSV文件,建立好对应的缓冲文件后,可以利用缓冲文件加快对数据的分析。例如,将待加载CSV文件对应的缓冲文件,作为基于待加载CSV文件绘制的带有比例的地图,在对待加载CSV文件进行加载时,可以根据带有比例的地图,对待加载CSV文件进行核心数据的提取,完成高效的加载过程。
根据本公开的实施例,实现了以下技术效果:
通过获取待加载CSV文件;再提取待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;再根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量的缓冲文件,直接利用缓冲文件对待加载CSV文件进行加载,加快对数据的分析,无需再基于人工操作对逗号和换行符进行进一步分析定位,从而有效加快对CSV文件的处理速度,进而提高数据处理效率。
在一些实施例中,上述根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成待加载CSV文件对应的缓冲文件包括:
根据逗号和换行符的位置信息、值状态信息以及边界状态信息,检测待加载CSV文件中逗号和换行符是否表示值;
若检测到表示值的逗号和/或换行符,则从逗号和换行符的位置信息中删除表示值的逗号和/或换行符对应的位置信息;
根据执行删除操作后的逗号和换行符的位置信息,生成待加载CSV文件对应的缓冲文件。
在一些实施例中,在确定CSV文件中逗号和换行符的定位后,可以通过值状态信息和边界状态信息,判断待加载CSV文件中逗号和换行符是否表示值。
例如,在上述CSV文件中,"Extended Edition,Very Large"中的逗号为值,"MUSTSELL!
air,moon roof,loaded"中的换行符和逗号均为值。
在一些实施例中,为避免在对CSV文件进行数据加载时,还需对逗号和换行符进行进一步分析定位,可以将表示值的逗号和换行符的位置信息进行删除,以便能够基于在执行删除操作后的逗号和换行符的位置信息,快速生成固定长度和固定格式的缓冲文件。
根据本公开的实施例,实现了以下技术效果:
可以通过删除表示值的逗号和/或换行符对应的位置信息,令当前待加载CSV文件中的逗号均表示值的分割,换行符均表示每条纪录的分割,以避免在对CSV文件进行数据加载时,还需对逗号和换行符进行进一步分析定位,进一步提高数据的处理效率。
在一些实施例中,预设偏移量为1字节、2字节、4字节或者8字节。
在一些实施例中,为了节省储存空间,可以配置不同的偏移量。
例如,假设对10亿行20列的CSV文件进行处理,当配置的预设偏移量为1字节、2字节、4字节或者8字节,则需要的存储空间如下列所示:
1字节:1,000,000,000 * (8 + 20*1) B = 28 GB
2字节:1,000,000,000 * (8 + 20*2) B = 48GB
4字节:1,000,000,000 * (8 + 20*4) B = 88GB
8字节:1,000,000,000 * (8 + 20*8) B = 168GB
可见,随着数据类型的增大,不同类型的数据对缓冲文件的影响非常显著。
根据本公开的实施例,实现了以下技术效果:
可以通过设置不同的预设偏移量来满足用户的不同需求,设置的预设偏移量越小,节省的储存空间越大。
在一些实施例中,上述基于缓冲文件,读取待加载CSV文件包括:
根据缓冲文件中描述待加载CSV文件中逗号和换行符的位置,对待加载CSV文件进行分块处理和批量读取,完成对待加载CSV文件的全文加载。
在一些实施例中,在对整个待加载CSV文件进行加载时,先加载缓冲文件。由于缓冲文件为固定长度文件,所以可以一次性读取多行,然后,根据缓冲文件中描述的逗号和换行符的位置,对待加载CSV文件进行批量加载和分块处理。
在一些实施例中,对待加载CSV文件进行分块处理时,分块位置时缓冲文件中已经定义的,即由每行的起始位置以及每个值的预设偏移量定义,所以可以避免查询分析过程,以便有效加快数据的读取。
根据本公开的实施例,实现了以下技术效果:
基于缓冲文件,通过对待加载CSV文件进行分块处理和批量读取,完成对待加载CSV文件的全文加载,以便提供全文加载的方式供用户选择,满足用户的多样性需求。
在一些实施例中,上述基于缓冲文件,读取待加载CSV文件包括:
根据缓冲文件中描述每行的起始位置以及每个值的预设偏移量,逐行对待加载CSV文件中预设目标值进行读取,完成对待加载CSV文件的指定列加载。
在一些实施例中,列加载是指对待加载CSV文件中指定的列进行加载。
在一些实施例中,缓冲文件已经描述每行的起始位置和每个值的预设偏移量,根据每个值的预设偏移量可以得到每个值的结束位置,再基于每行的起始位置和每个值的结束位置,只需要逐行对值进行读取,即可完成对指定列的加载。
根据本公开的实施例,实现了以下技术效果:
基于缓冲文件,通过逐行对待加载CSV文件中预设目标值进行读取,完成对待加载CSV文件的指定列加载,以便提供指定列加载的方式供用户选择,满足用户的多样性需求。
在一些实施例中,上述基于缓冲文件,读取待加载CSV文件包括:
根据缓冲文件中描述每行的起始位置,对待加载CSV文件中预设目标行进行读取,完成对待加载CSV文件的指定行加载。
在一些实施例中,行加载是指对待加载CSV文件中指定的行进行加载。
在一些实施例中,由于缓冲文件中的每行都是以绝对偏移量,即字符偏移量规定的,所以可以以一次操作就定位到指定的行。基于此,无论是对预设范围内的行,或者是对随机行进行访问,时间复杂度都是O(1),即对预设范围内的行,或者是对随机行进行访问只需要一条指令。
根据本公开的实施例,实现了以下技术效果:
基于缓冲文件,通过对待加载CSV文件中预设目标行进行读取,完成对待加载CSV文件的指定行加载,以便提供指定行加载的方式供用户选择,满足用户的多样性需求。
在一些实施例中,上述获取待加载CSV文件包括:
采用流式文件读取目标CSV文件,得到待加载CSV文件。
在一些实施例中,面对GB级的大容量CSV文件,在读取CSV文件时,可以采用流式文件读取的方式,读取目标CSV文件。
例如,每次读取目标CSV文件中定长个字节,如10KB,再将10KB定长的目标CSV文件作为待加载CSV文件进行后续的加载处理。
根据本公开的实施例,实现了以下技术效果:
面对GB级的大容量CSV文件,通过采用流式文件读取的方式,得到待加载CSV文件,可以支持超过GB级别的超大文件的加载。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图2示出了根据本公开的实施例的CSV文件的数据加载装置200的方框图。如图2所示,装置200包括:
获取模块210,用于获取待加载CSV文件;
提取模块220,用于提取待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,值状态信息为用于表征当前字符是在待加载CSV文件中引号内的值,或者是待加载CSV文件中值间的预设符号的信息;边界状态信息为用于表征待加载CSV文件中边界切换的位置信息;
生成模块230,用于根据逗号和换行符的位置信息、值状态信息以及边界状态信息,生成待加载CSV文件对应的缓冲文件;其中,缓冲文件用于描述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;
加载模块240,用于基于缓冲文件,加载待加载CSV文件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图3示出了可以用来实施本公开的实施例的电子设备300的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
电子设备300包括计算单元301,其可以根据存储在ROM302中的计算机程序或者从存储单元308加载到RAM303中的计算机程序,来执行各种适当的动作和处理。在RAM303中,还可存储电子设备300操作所需的各种程序和数据。计算单元301、ROM302以及RAM303通过总线304彼此相连。I/O接口305也连接至总线304。
电子设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许电子设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理,例如方法100。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM302和/或通信单元309而被载入和/或安装到电子设备300上。当计算机程序加载到RAM303并由计算单元301执行时,可以执行上文描述的方法100的一个或多个步骤。备选地,在其他实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置;以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (9)
1.一种CSV文件的数据加载方法,其特征在于,包括:
获取待加载CSV文件;
提取所述待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,所述值状态信息为用于表征当前字符是在所述待加载CSV文件中引号内的值或者是所述待加载CSV文件中值间的预设符号的信息;所述边界状态信息为用于表征所述待加载CSV文件中边界切换的位置信息;其中,所述待加载CSV文件中值间的预设符号的信息包括:逗号和换行符在引号外时,逗号表示值的分隔,换行符表示每条记录的分隔;所述待加载CSV文件中边界切换的位置信息包括:对引号和非引号两种状态的边界进行定义,记录边界切换的位置;
根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件;其中,所述缓冲文件用于描述所述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;所述根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件包括:根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,检测所述待加载CSV文件中逗号和换行符是否表示值;若检测到表示值的逗号和/或换行符,则从所述逗号和换行符的位置信息中删除表示值的逗号和/或换行符对应的位置信息;根据执行删除操作后的逗号和换行符的位置信息,生成所述待加载CSV文件对应的缓冲文件;
基于所述缓冲文件,加载所述待加载CSV文件。
2.根据权利要求1所述的方法,其特征在于,所述预设偏移量为1字节、2字节、4字节或者8字节。
3.根据权利要求1所述的方法,其特征在于,所述基于所述缓冲文件,加载所述待加载CSV文件包括:
根据所述缓冲文件中描述所述待加载CSV文件中逗号和换行符的位置,对所述待加载CSV文件进行分块处理和批量读取,完成对所述待加载CSV文件的全文加载。
4.根据权利要求1所述的方法,其特征在于,所述基于所述缓冲文件,加载所述待加载CSV文件包括:
根据所述缓冲文件中描述每行的起始位置以及每个值的预设偏移量,逐行对所述待加载CSV文件中预设目标值进行读取,完成对所述待加载CSV文件的指定列加载。
5.根据权利要求1所述的方法,其特征在于,所述基于所述缓冲文件,加载所述待加载CSV文件包括:
根据所述缓冲文件中描述每行的起始位置,对所述待加载CSV文件中预设目标行进行读取,完成对所述待加载CSV文件的指定行加载。
6.根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述获取待加载CSV文件包括:
采用流式文件读取目标CSV文件,得到待加载CSV文件。
7.一种CSV文件的数据加载装置,其特征在于,包括:
获取模块,用于获取待加载CSV文件;
提取模块,用于提取所述待加载CSV文件中逗号和换行符的位置信息、值状态信息以及边界状态信息;其中,所述值状态信息为用于表征当前字符是在所述待加载CSV文件中引号内的值或者是所述待加载CSV文件中值间的预设符号的信息;所述边界状态信息为用于表征所述待加载CSV文件中边界切换的位置信息;其中,所述待加载CSV文件中值间的预设符号的信息包括:逗号和换行符在引号外时,逗号表示值的分隔,换行符表示每条记录的分隔;所述待加载CSV文件中边界切换的位置信息包括:对引号和非引号两种状态的边界进行定义,记录边界切换的位置;
生成模块,用于根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件;其中,所述缓冲文件用于描述所述待加载CSV文件中逗号和换行符的位置、每行的起始位置以及每个值的预设偏移量;所述根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,生成所述待加载CSV文件对应的缓冲文件包括:根据所述逗号和换行符的位置信息、所述值状态信息以及所述边界状态信息,检测所述待加载CSV文件中逗号和换行符是否表示值;若检测到表示值的逗号和/或换行符,则从所述逗号和换行符的位置信息中删除表示值的逗号和/或换行符对应的位置信息;根据执行删除操作后的逗号和换行符的位置信息,生成所述待加载CSV文件对应的缓冲文件;
加载模块,用于基于所述缓冲文件,加载所述待加载CSV文件。
8. 一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一权利要求所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410534163.1A CN118113380B (zh) | 2024-04-30 | 2024-04-30 | Csv文件的数据加载方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410534163.1A CN118113380B (zh) | 2024-04-30 | 2024-04-30 | Csv文件的数据加载方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118113380A CN118113380A (zh) | 2024-05-31 |
CN118113380B true CN118113380B (zh) | 2024-07-12 |
Family
ID=91219432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410534163.1A Active CN118113380B (zh) | 2024-04-30 | 2024-04-30 | Csv文件的数据加载方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113380B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159979A (zh) * | 2019-12-23 | 2020-05-15 | 昆明安泰得软件股份有限公司 | 一种将动态数据整合生成pdf文档的方法及程序 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5546909B2 (ja) * | 2010-03-09 | 2014-07-09 | 日本電信電話株式会社 | データ処理システム及び方法及びプログラム |
CN103745010A (zh) * | 2014-01-28 | 2014-04-23 | 北京京东尚科信息技术有限公司 | 一种基于csv文件确定对象属性值的方法和装置 |
CN110990079B (zh) * | 2019-12-02 | 2020-07-24 | 北京大学 | 一种加载远程csv文件的方法和装置 |
US20210224254A1 (en) * | 2020-01-22 | 2021-07-22 | Salesforce.Com, Inc. | Intelligent data-loader for management of data in database systems |
CN116431243A (zh) * | 2023-04-19 | 2023-07-14 | 无锡信捷电气股份有限公司 | 一种用于nc大文件的加载编辑方法 |
-
2024
- 2024-04-30 CN CN202410534163.1A patent/CN118113380B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159979A (zh) * | 2019-12-23 | 2020-05-15 | 昆明安泰得软件股份有限公司 | 一种将动态数据整合生成pdf文档的方法及程序 |
Also Published As
Publication number | Publication date |
---|---|
CN118113380A (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907659B2 (en) | Item recall method and system, electronic device and readable storage medium | |
US20160378866A1 (en) | Ladder program editing device capable of displaying network comment | |
CN113204667B (zh) | 音频标注模型的训练与音频标注的方法、装置 | |
CN113780098A (zh) | 文字识别方法、装置、电子设备以及存储介质 | |
CN113408660B (zh) | 图书聚类方法、装置、设备和存储介质 | |
EP3955256A1 (en) | Non-redundant gene clustering method and system, and electronic device | |
CN112612664A (zh) | 电子设备的测试方法、装置、电子设备和存储介质 | |
CN113408306A (zh) | 翻译方法及分类模型的训练方法、装置、设备和存储介质 | |
CN116451174A (zh) | 任务执行装置、方法、电子设备和存储介质 | |
CN104102704A (zh) | 系统控件展示方法和装置 | |
CN118113380B (zh) | Csv文件的数据加载方法、装置、设备以及存储介质 | |
CN112989190B (zh) | 一种商品挂载方法、装置、电子设备和存储介质 | |
CN111858581A (zh) | 一种分页查询的方法、装置、存储介质和电子设备 | |
CN114564149B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113886637A (zh) | 一种视频粗排序的方法、装置、电子设备及存储介质 | |
CN114048376A (zh) | 广告的业务信息挖掘方法、装置、电子设备以及存储介质 | |
CN113868254A (zh) | 图数据库中的实体节点去重方法、设备和存储介质 | |
CN112817463A (zh) | 输入法获取音频数据的方法、设备和存储介质 | |
CN113051504A (zh) | 文档预览方法、装置、设备、存储介质及程序产品 | |
CN116244413B (zh) | 新意图确定方法、设备和存储介质 | |
CN113268987B (zh) | 一种实体名称识别方法、装置、电子设备和存储介质 | |
CN115292662B (zh) | 一种卷积加速运算方法、装置、电子设备及存储介质 | |
CN114398122B (zh) | 输入方法、装置、电子设备、存储介质及产品 | |
CN115756235A (zh) | 节点配置界面展示方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |