loadTextEx

Parent Previous Next


语法


loadTextEx(dbHandle, tableName, partitionColumns, filename, [delimiter], [schema], [skipRows=0], [transform])


参数


dbHandle是数据库的句柄,可以是内存数据库、本地磁盘数据库或分布式数据库。


tableName是一个字符串,表示表的名称。


partitionColumns是字符串标量或向量,表示分区列。对于顺序分区类型的数据库,partitionColumns为空字符串""。对于组合分区类型的数据库,partitionColumns是字符串向量。


filename是字符串,表示数据文件的路径。


delimiter是各列的分隔符。默认是逗号。


schema是一个表,用于指定各列的数据类型。具体请参考loadTextschema参数。


skipRows是0到1024之间的整数,表示从文件头开始忽略的行数。它是一个可选参数。默认值为0。


transform是一元函数,并且该函数接受的参数必须是一个表。


详请


将数据文件加载到数据库中。




如果指定了transform参数,需要先创建分区表,再加载数据。系统会对数据文件中的数据执行transform参数指定的函数,再将得到的结果保存到数据库中。


例子


使用以下脚本生成模拟的数据文件:



>n=10000

ID=rand(100, n)

dates=2017.08.07..2017.08.11

date=rand(dates, n)

vol=rand(1..10 join int(), n)

t=table(ID, date, vol);

saveText(t, "C:/DolphinDB/Data/t.txt");



例1. 把t.txt文件加载到范围分区类型的本地磁盘数据库中,分区列为ID。



db = database("C:/DolphinDB/Data/rangedb", RANGE, 0 51 101)

pt=loadTextEx(db,`pt,`ID,"C:/DolphinDB/Data/t.txt");



例2. 把t.txt文件加载到组合分区类型的分布式数据库中,分区列为date和ID。



dbDate = database("", VALUE, 2017.08.07..2017.08.11)

dbID=database("", RANGE, 0 51 101);

db = database("dfs://compoDB", COMPO, [dbDate, dbID]);

pt=loadTextEx(db,`pt,`date`ID, "C:/DolphinDB/Data/t.txt");



例3. 把t.txt加载到值分区类型分内存数据库中,分区列为date。



db = database("", VALUE, 2017.08.07..2017.08.11)

pt = db.loadTextEx("", `date, "C:/DolphinDB/Data/t.txt");


pt.sortBy!(`ID`x);



例4. 示例文件的vol列包含空值,将空值填充为0后再加载到组合分区类型的分布式数据库中。



dbDate = database("", VALUE, 2017.08.07..2017.08.11)

dbID=database("", RANGE, 0 51 101);

db = database("dfs://compoDB", COMPO, [dbDate, dbID]);


pt=db.createPartitionedTable(t,`pt,`date`ID)

pt=loadTextEx(db,`pt,`date`ID, "C:/DolphinDB/Data/t.txt",,,,nullFill!{,0});