Ich versuche, eine Funktion zu erstellen, um meine Aufzeichnungen zu analysieren, und ich bin immer zwei verschiedene Verhaltensweisen, wenn ich eine Funktion vs hart nennen Codierung es:Scala Parsing JSON anders verhalten in einer Funktion
Ich verwende:
import org.json4s.JsonAST.{JString, JField, JObject, JArray}
import org.json4s.jackson.JsonMethods._
val parsed = parse("""{"timestamp":"2016-06-02 13:40:16,772","tableName":"stg_mde_campaign_master","dbName":"stg_bankrtl_mde","owner":"hive","location":"null"}""")
val output = for {
JObject(child) <- parsed
JField("timestamp", JString(subject1)) <- child
JField("tableName", JString(obj1)) <- child
} yield (subject1,obj1)
will Ausgang (was ich will):
output: List[(String, String)] = List((2016-06-02 13:40:16,772,stg_mde_campaign_master)
aber wenn ich es auf eine Funktion übertragen erhalte ich:
Der Ausgang wirkt sehr seltsam:
something: List[(String, String)] = List((2016-06-02 13:40:16,772,2016-06-02 13:40:16,772), (2016-06-02 13:40:16,772,stg_mde_campaign_master), (2016-06-02 13:40:16,772,stg_bankrtl_mde), (2016-06-02 13:40:16,772,hive), (2016-06-02 13:40:16,772,null), (stg_mde_campaign_master,2016-06-02 13:40:16,772), (stg_mde_campaign_master,stg_mde_campaign_master), (stg_mde_campaign_master,stg_bankrtl_mde), (stg_mde_campaign_master,hive), (stg_mde_campaign_master,null), (stg_bankrtl_mde,2016-06-02 13:40:16,772), (stg_bankrtl_mde,stg_mde_campaign_master), (stg_bankrtl_mde,stg_bankrtl_mde), (stg_bankrtl_mde,hive), (stg_bankrtl_mde,null), (hive,2016-06-02 13:40:16,772), (hive,stg_mde_campaign_master), (hive,stg_bankrtl_mde), (hive,hive), (hive,null), (null,2016-06-02 13:40:16,772), (null,stg_mde_campaign_...
Beitrag einige fahrbare Code. – Falmarri
Die Importanweisungen hinzugefügt, aber alles andere ist ausführbar – theMadKing