关于动态生成类型实体的方法。

我写的业务大致是,通过读取csv,动态增加列,并追加数据。平台是基于dos的。

我现在实现的方式比较笨。寻求更好的方式

@state
def data_type_dict(key){
data_type_dict = dict(STRING,ANY)
data_type_dict[`STRING] = STRING
data_type_dict[`DATE] = DATE
data_type_dict[`INT] = INT
data_type_dict[`DOUBLE] = DOUBLE
data_type_dict[`LONG] = LONG
data_type_dict[`FLOAT] = FLOAT
data_type_dict[`SYMBOL] = SYMBOL
data_type_dict[`DATETIME] = DATETIME
return find(data_type_dict,key)
}



请先 登录 后评论

最佳答案 2023-07-10 12:19

可以通过 parseExpr 将类型字符串解析为类型:

s = extractTextSchema("/hdd/data/finance/2021tick/20211130tick.csv")
t = table(10:0, s.name, each(x->parseExpr(x).eval(), s.type))
schema(t)

// output

chunkPath->
partitionColumnIndex->-1
colDefs->
name        typeString typeInt extra comment
----------- ---------- ------- ----- -------
SecurityID  INT        4                    
TradeTime   TIMESTAMP  12                   
TradePrice  DOUBLE     16                   
TradeQty    INT        4                    
TradeAmount DOUBLE     16                   
BuyNo       INT        4                    
SellNo      INT        4                    
TradeIndex  INT        4                    
ChannelNo   INT        4                    
TradeBSFlag CHAR       2                    
BizIndex    INT        4                    
请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,571 浏览
  • 柏木 提出于 2023-07-09 20:33