Ich arbeite derzeit mit Funken Streaming und Daten von meinem Kafka in Json erhalten. Ich konvertiere meine RDD in Dataframe und registrieren Sie es als Tabelle. Nachdem ich, dass, wenn ich eine Abfrage ausgelöst, wo der Spaltenname existiert nicht in dem Datenrahmen einen Fehler wieSpalte Namen nicht in Datenframe Funken
"'No such struct field currency in price, recipientId;'"
HEre is my query
val selectQuery = "lower(serials.brand) as brandname, lower(appname) as appname, lower(serials.pack) as packname, lower(serials.asset) as assetname, date_format(eventtime, 'yyyy-MM-dd HH:00:00') as eventtime, lower(eventname) as eventname, lower(client.OSName) as platform, lower(eventorigin) as eventorigin, meta.price as price, client.ip as ip, lower(meta.currency) as currency, cast(meta.total as int) as count"
Here is my dataframe
DataFrame[addedTime: bigint, appName: string, client: struct<ip:string>, eventName: string, eventOrigin: string, eventTime: string, geoLocation: string, location: string, meta: struct<period:string,total:string>, serials: struct<asset:string,brand:string,pack:string>, userId: string]>
Nun meine Json ist nicht streng und es gibt Zeiten, einige Tasten nicht vorhanden sein wirft. Wie kann ich diese Ausnahme sicher umgehen, wenn die Schlüssel oder Spalten im Dataframe nicht vorhanden sind?