0
我的代码如下。看起来数据以随机顺序输出,这很有意义,因为NamedRecord
只是一个Map
。有没有办法强制执行特定的命令?我可以使用NamedRecords设置conduit-CSV的列顺序吗?
我认为一种选择是创建Conduit (Named a) m (Row Text)
类型的管道,但它似乎是一个常见的用例,标准应该已经存在。
processor :: Monad m => Conduit (Named FalconRow) m (Named HefRow)
processor = do
value <- await
case value of
Nothing -> return()
Just v -> do
let transformed = (fixRow . getNamed) v
CL.sourceList $ Prelude.map Named transformed
runTranslation :: IO()
runTranslation = runResourceT $
transformCSV defCSVSettings
(sourceFile "input.csv")
processor
(sinkFile "output.csv")