在scala中对csv的强类型访问? [英] Strongly typed access to csv in scala?
问题描述
我想以强类型的方式访问 scala 中的 csv 文件.例如,当我读取 csv 的每一行时,它会被自动解析并表示为具有适当类型的元组.我可以在传递给解析器的某种模式中预先指定类型.是否有任何图书馆可以做到这一点?如果没有,我怎么能自己实现这个功能?
I would like to access csv files in scala in a strongly typed manner. For example, as I read each line of the csv, it is automatically parsed and represented as a tuple with the appropriate types. I could specify the types beforehand in some sort of schema that is passed to the parser. Are there any libraries that exist for doing this? If not, how could I go about implementing this functionality on my own?
推荐答案
出现product-collections非常适合您的要求:
product-collections appears to be a good fit for your requirements:
scala> val data = CsvParser[String,Int,Double].parseFile("sample.csv")
data: com.github.marklister.collections.immutable.CollSeq3[String,Int,Double] =
CollSeq((Jan,10,22.33),
(Feb,20,44.2),
(Mar,25,55.1))
product-collections 使用 opencsv 在后台.
product-collections uses opencsv under the hood.
一个 CollSeq3
是一个 IndexedSeq[Product3[T1,T2,T3]]
也是一个 Product3[Seq[T1],Seq[T2],Seq[T3]]
加一点糖.我是 product-collections 的作者.
A CollSeq3
is an IndexedSeq[Product3[T1,T2,T3]]
and also a Product3[Seq[T1],Seq[T2],Seq[T3]]
with a little sugar. I am the author of product-collections.
Product3 本质上是元组 3 的元组.
Product3 is essentially a tuple of arity 3.
这篇关于在scala中对csv的强类型访问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!