如何复用已创建的schema的信息

场景

(1)根据已经创建的dfs表,通过 loadTable("dfs://OLAP_STOCK", "snap").schema().colDefs 得到下述信息:

attachments-2021-11-CnrJ7lq4619ee897362d5.png(2)通过下述代码获取一个 csv 文件的chema:

filePath = "C:/data/2020/20200102/SH501000.csv"
fileSchema = extractTextSchema(filePath)

fileSchema信息如下:

attachments-2021-11-vTHVbYxY619eec51b7010.png

需求

由于上述的表的列数非常多,请问有什么办法可以基于上述获得的信息快速生成name和type的向量表达式?

请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

以 csv 文本文件为例,示例代码如下

def getFileSchemaName(filePath){
	schema = extractTextSchema(filePath)
	name = string(NULL)
	for (i in schema.name){
		name = name + "`" + i
	}
	return name
}
def getFileSchemaType(filePath){
	schema = extractTextSchema(filePath)
	type = string(NULL)
	for (i in schema.type){
		type = type + "`" + i
	}
	return type
}

filePath = "C:/data/2020/20200102/test.csv"
name = getFileSchemaName(filePath)
type = getFileSchemaType(filePath)

name 变量内容:

`Symbol`DateTime`Status`PreClose`Open`High`Low`Price`TotalVolume`TotalAmount`AskPrice1`AskPrice2`AskPrice3`AskPrice4`AskPrice5`AskPrice6`AskPrice7`AskPrice8`AskPrice9`AskPrice10`BidPrice1`BidPrice2`BidPrice3`BidPrice4`BidPrice5`BidPrice6`BidPrice7`BidPrice8`BidPrice9`BidPrice10`AskVolume1`AskVolume2`AskVolume3`AskVolume4`AskVolume5`AskVolume6`AskVolume7`AskVolume8`AskVolume9`AskVolume10`BidVolume1`BidVolume2`BidVolume3`BidVolume4`BidVolume5`BidVolume6`BidVolume7`BidVolume8`BidVolume9`BidVolume10`TickCount`BidOrderTotalVolume`AskOrderTotalVolume`AvgBidOrderPrice`AvgAskOrderPrice`LimitHighestPrice`LimitLowestPrice

type 变量内容:

`SYMBOL`DATETIME`INT`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`INT`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`DOUBLE`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`INT`DOUBLE`DOUBLE`DOUBLE`DOUBLE


请先 登录 后评论