如果我想导入 CSV 文件,仅导入某些字段并且字段顺序不同,是否需要先调整 CSV?
要仅从 CSV 文件导入某些字段并更改字段的顺序,您可以通过使用
loadTextEx
和 loadText
指定架构来导入特定列。在这种情况下,架构必须指定“col
”列。请参阅下面的示例脚本:
id = 1 2 3
sym = "aa" "bb" "cc"
val1 = 1.1 1.2 1.3
val2 = 1.3 1.4 1.5
val3 = 2.3 2.2 2.1
t = table(id, sym, val1, val2, val3)
saveText(t, "/tmp/test.csv")
s = extractTextSchema("/tmp/test.csv")
update s set col = rowNo(name)
s = select * from s where name in ["id", "sym", "val3"]
loadText(filename="/tmp/test.csv", schema=s)
如果您将数据加载到内存中并需要更改列的顺序,您可以使用
reorderColumns!
。同样,将数据加载到分布式表时,您可以在 reorderColumns!
的 transform
函数参数中使用 loadTextEx
。
def mytrans(mutable t, colNames){
t.reoderColumns!(colNames)
return t
}
loadTextEx(db, `pt, `tradetime, dir, transform=mytrans{,colNames})