Hello Experts,

I would need your advice in resolving the below issue when I am trying to
retrieving the data from a dataframe.

Can you please let me know where I am going wrong.

code :


// create the dataframe by parsing the json
// Message Helper describes the JSON Struct
//data out is the json string received from Streaming Engine.

val dataDF = sparkSession.createDataFrame(dataOut, MessageHelper.sqlMapping)
dataDF.printSchema()
/* -- out put of dataDF.printSchema

root
 |-- messageID: string (nullable = true)
 |-- messageType: string (nullable = true)
 |-- meta: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- messageParsedTimestamp: string (nullable = true)
 |    |    |-- ipaddress: string (nullable = true)
 |-- messageData: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- packetID: string (nullable = true)
 |    |    |-- messageID: string (nullable = true)
 |    |    |-- unixTime: string (nullable = true)



*/


dataDF.createOrReplaceTempView("message")
val routeEventDF=sparkSession.sql("select messageId
,messageData.unixTime,messageData.packetID, messageData.messageID from
message")
routeEventDF.show


Error  on routeEventDF.show
Caused by: java.lang.RuntimeException:
org.apache.spark.sql.catalyst.expressions.GenericRow is not a valid
external type for schema of
array<struct<messageParsedTimestamp:string,ipaddress:string,port:string,message:string>>>>
at
org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificUnsafeProjection.evalIfFalseExpr14$(Unknown
Source)


Appreciate your help

Best Regards
Arnav Kumar.

Reply via email to