You can try to create new columns with the nested value,

> On Jan 29, 2018, at 15:26, Arnav kumar <akns2...@gmail.com> wrote:
> 
> 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.
> 
> 


---------------------------------------------------------------------
To unsubscribe e-mail: user-unsubscr...@spark.apache.org

Reply via email to