2016-05-13 65 views
1

創建類,我想這樣做的斯卡拉:轉換二進制儉到JSON沒有斯卡拉

我有一個信息系統,其中卡夫卡的入口點。數據以二進制的Thrift編碼到卡夫卡。從那裏我收集它與Spark工作。在那裏我想將消息反序列化成JSON字符串。 現在據我瞭解,我可以通過Thrift生成Scala類,使Scala對象脫離我的消息,然後將它們轉換爲JSON。由於我真的不在乎使用類,有沒有辦法通過提供Thrift文件將二進制編碼數據直接轉換爲JSON? 或者可能在運行時創建類?重點是我想讓系統保持新的消息類型的動態性,因此希望避免依賴手動創建的Scala類。

我希望這樣的有道理,如果您有任何進一步的問題繼續:)

回答

1

節儉是不是真的打算這樣動態使用。考慮例如改爲Avro

如果你有儲蓄要做到這一點,你可以「只」運行節儉Java或Scala編譯器作爲外部進程,編譯生成文件(和你自己產生膠水代碼如有)(分別見How do I programmatically compile and instantiate a Java class?Scala - How to compile code from an external file at runtime? ,或者只是谷歌瞭解更多鏈接),使用URLClassLoader加載課程並使用反射訪問它們。