Как повторно использовать созданную схему?

#mysql #csv #dolphindb

#mysql #csv #дельфинб

Вопрос:

Сценарий: На основе созданной таблицы dfs результаты получаются с использованием loadTable("dfs://OLAP_STOCK", "snap").schema().colDefs

введите описание изображения здесь

Используйте скрипт для получения схемы csv-файла:

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

информация о файловой системе выглядит следующим образом:

введите описание изображения здесь

Поскольку в таблице много столбцов, есть ли какой-либо способ быстро сгенерировать векторные выражения имени и типа на основе информации, полученной выше?

Ответ №1:

Возьмем в качестве примера 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)  

переменная имени:

 `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  

переменная типа:

 `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