爲了方便在Scala中使用Avro,我想定義一個基於與.avro文件一起存儲的模式的案例類。我可以嘗試:我可以從Avro模式定義中獲得Scala案例類定義嗎?
- 手寫一個.scala案例類的定義。
- 編程字符串寫入到文件.scala
- 欺騙的情況下類定義了字節碼庫像 ObjectWeb的ASM
- SpecificCompiler花樣?
- 在運行時修改現有的案例分類定義?
謝謝,任何意見表示讚賞。 -Julian
爲了方便在Scala中使用Avro,我想定義一個基於與.avro文件一起存儲的模式的案例類。我可以嘗試:我可以從Avro模式定義中獲得Scala案例類定義嗎?
謝謝,任何意見表示讚賞。 -Julian
我一直在黑客一個名爲Scalavro的小項目去其他方式(斯卡拉類型爲Avro模式)。它也給你直接的二進制I/O。
簡單的例子:
package com.gensler.scalavro.tests
import com.gensler.scalavro.types.AvroType
case class Person(name: String, age: Int)
val personAvroType = AvroType[Person]
personAvroType.schema
其產生:
{
"name": "Person",
"type": "record",
"fields": [
{"name": "name", "type": "string"},
{"name": "age", "type": "int"}
],
"namespace": "com.gensler.scalavro.tests"
}
上有項目網站(上面鏈接),並在scalatest規格許多更多的例子。
我有計劃在不久的將來在Sonatype OSS上託管二進制文件,但現在你可以從github和sbt publish-local
中獲取源代碼,如果你想試試它。
更新:
Scalavro現在Maven的中央可用。
很不錯的了你的手髒有型供應商。保持良好的工作。你考慮把它帶到哪裏有編譯時反射版本? – 2014-03-11 17:13:34
尚未,但這將是一個真正有趣的項目。想幫忙嗎? – 2014-03-12 04:55:49
注意:我不確定scala宏將來能夠生成一個類型 – 2015-01-26 15:50:48