Thanks Abhishek for reply.
But i tried above experimental feature and trail-mail query worked but it
giving me "*SchemaChangeException: Failure while trying to materialize
incoming schema.*" when i am trying to execute below query :-
0: jdbc:drill:> select url from
dfs.`/user/hadoop/kafkalogs-stage/acl_15.json` t where t.body like
'%customTrackingData%' limit 1;
*Error: SYSTEM ERROR: SchemaChangeException: Failure while trying to
materialize incoming schema. Errors:*
*Error in expression at index -1. Error: Missing function implementation:
[like(MAP-REQUIRED, VARCHAR-REQUIRED)]. Full expression: --UNKNOWN
EXPRESSION--..*
Fragment 0:0
[Error Id: 1ab73ede-1ad7-4285-8465-b5f1da6b08f0 on datanode2:31010]
(state=,code=0)
java.sql.SQLException: SYSTEM ERROR: SchemaChangeException: Failure while
trying to materialize incoming schema. Errors:
Error in expression at index -1. Error: Missing function implementation:
[like(MAP-REQUIRED, VARCHAR-REQUIRED)]. Full expression: --UNKNOWN
EXPRESSION--..
Fragment 0:0
[Error Id: 1ab73ede-1ad7-4285-8465-b5f1da6b08f0 on datanode2:31010]
at
org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:247)
at
org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:290)
at
org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1933)
at
org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:73)
at
net.hydromatic.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:404)
at
net.hydromatic.avatica.AvaticaStatement.executeQueryInternal(AvaticaStatement.java:351)
at
net.hydromatic.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:338)
at
net.hydromatic.avatica.AvaticaStatement.execute(AvaticaStatement.java:69)
at
org.apache.drill.jdbc.impl.DrillStatementImpl.execute(DrillStatementImpl.java:101)
at sqlline.Commands.execute(Commands.java:841)
at sqlline.Commands.sql(Commands.java:751)
at sqlline.SqlLine.dispatch(SqlLine.java:746)
at sqlline.SqlLine.begin(SqlLine.java:621)
at sqlline.SqlLine.start(SqlLine.java:375)
at sqlline.SqlLine.main(SqlLine.java:268)
Caused by: org.apache.drill.common.exceptions.UserRemoteException: SYSTEM
ERROR: SchemaChangeException: Failure while trying to materialize incoming
schema. Errors:
Error in expression at index -1. Error: Missing function implementation:
[like(MAP-REQUIRED, VARCHAR-REQUIRED)]. Full expression: --UNKNOWN
EXPRESSION--..
Fragment 0:0
[Error Id: 1ab73ede-1ad7-4285-8465-b5f1da6b08f0 on datanode2:31010]
at
org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:123)
at
org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:134)
at
org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:46)
at
org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:31)
at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:65)
at org.apache.drill.exec.rpc.RpcBus$RequestEvent.run(RpcBus.java:363)
at
org.apache.drill.common.SerializedExecutor$RunnableProcessor.run(SerializedExecutor.java:89)
at
org.apache.drill.exec.rpc.RpcBus$SameExecutor.execute(RpcBus.java:240)
at
org.apache.drill.common.SerializedExecutor.execute(SerializedExecutor.java:123)
at
org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:274)
at
org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:245)
at
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
at
io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
at
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
at
io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)
at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
at
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
at java.lang.Thread.run(Thread.java:745)
Can anyone suggest any workaround or fix in these scenarios?
Regards,
*Anup Tiwari*
On Mon, Oct 17, 2016 at 10:42 PM, Abhishek Girish <[email protected]
> wrote:
> Hey Anup,
>
> From the sample data you shared, it looks like you have JSON documents
> which differ considerably in the schema / structure. This isn't supported
> by default.
>
> You could try turning on UNION type (an experimental feature).
>
> > set `exec.enable_union_type` = true;
> +-------+----------------------------------+
> | ok | summary |
> +-------+----------------------------------+
> | true | exec.enable_union_type updated. |
> +-------+----------------------------------+
> 1 row selected (0.193 seconds)
>
>
> On Mon, Oct 17, 2016 at 2:33 AM, Anup Tiwari <[email protected]>
> wrote:
>
> > Hi Team,
> >
> > I have a data in which key name "event" normally consist of plain values
> > like 'load' OR "click" etc. Also from past few days in few JSON,
> > this("event" key) contains JSON value.
> >
> > And while reading event section, we are getting *DATA_READ ERROR: Error
> > parsing JSON. *Please provide solution asap.
> >
> >
> > Please find below eg :-
> >
> > *Case 1* :- {"body":{*"event":"click"*,"url":"https://www.rnd.com/
> > ","timestamp":1476514176276,"id":"abc","ajaxUrl":null,"
> > ajaxData":null,"metadata":null}
> >
> > *Case 2* :- {"body":{
> > *"event":{"isTrusted":true,"customTrackingData":"ACE-
> > click-MON-ABC_UL-NA"}*
> > ,"url":"https://www.rnd.com/test.html
> > ","timestamp":1476531412179,"id":"pqr","ajaxUrl":null,"
> > ajaxData":null,"metadata":null}
> >
> >
> >
> > *Error :*0: jdbc:drill:> select t.body from
> > dfs.`/user/hadoop/kafkalogs-stage/acl_15.json` t limit 1;
> > Error: DATA_READ ERROR: Error parsing JSON - You tried to start when you
> > are using a ValueWriter of type NullableVarCharWriterImpl.
> >
> > File /user/hadoop/kafkalogs-stage/acl_15.json
> > Record 120
> > Fragment 0:0
> >
> > [Error Id: bc33aac6-4cca-4237-9d01-01e1f1015572 on datanode1:31010]
> > (state=,code=0)
> > java.sql.SQLException: DATA_READ ERROR: Error parsing JSON - You tried to
> > start when you are using a ValueWriter of type NullableVarCharWriterImpl.
> >
> > File /user/hadoop/kafkalogs-stage/acl_15.json
> > Record 120
> > Fragment 0:0
> >
> > [Error Id: bc33aac6-4cca-4237-9d01-01e1f1015572 on datanode1:31010]
> > at
> > org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(
> > DrillCursor.java:247)
> > at
> > org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(
> > DrillCursor.java:290)
> > at
> > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(
> > DrillResultSetImpl.java:1933)
> > at
> > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(
> > DrillResultSetImpl.java:73)
> > at
> > net.hydromatic.avatica.AvaticaConnection.executeQueryInternal(
> > AvaticaConnection.java:404)
> > at
> > net.hydromatic.avatica.AvaticaStatement.executeQueryInternal(
> > AvaticaStatement.java:351)
> > at
> > net.hydromatic.avatica.AvaticaStatement.executeInternal(
> > AvaticaStatement.java:338)
> > at
> > net.hydromatic.avatica.AvaticaStatement.execute(
> AvaticaStatement.java:69)
> > at
> > org.apache.drill.jdbc.impl.DrillStatementImpl.execute(
> > DrillStatementImpl.java:101)
> > at sqlline.Commands.execute(Commands.java:841)
> > at sqlline.Commands.sql(Commands.java:751)
> > at sqlline.SqlLine.dispatch(SqlLine.java:746)
> > at sqlline.SqlLine.begin(SqlLine.java:621)
> > at sqlline.SqlLine.start(SqlLine.java:375)
> > at sqlline.SqlLine.main(SqlLine.java:268)
> > Caused by: org.apache.drill.common.exceptions.UserRemoteException:
> > DATA_READ ERROR: Error parsing JSON - You tried to start when you are
> using
> > a ValueWriter of type NullableVarCharWriterImpl.
> >
> > File /user/hadoop/kafkalogs-stage/acl_15.json
> > Record 120
> > Fragment 0:0
> >
> > [Error Id: bc33aac6-4cca-4237-9d01-01e1f1015572 on datanode1:31010]
> > at
> > org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(
> > QueryResultHandler.java:123)
> > at
> > org.apache.drill.exec.rpc.user.UserClient.handleReponse(
> > UserClient.java:134)
> > at
> > org.apache.drill.exec.rpc.BasicClientWithConnection.handle(
> > BasicClientWithConnection.java:46)
> > at
> > org.apache.drill.exec.rpc.BasicClientWithConnection.handle(
> > BasicClientWithConnection.java:31)
> > at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:65)
> > at org.apache.drill.exec.rpc.RpcBus$RequestEvent.run(
> RpcBus.java:363)
> > at
> > org.apache.drill.common.SerializedExecutor$RunnableProcessor.run(
> > SerializedExecutor.java:89)
> > at
> > org.apache.drill.exec.rpc.RpcBus$SameExecutor.execute(RpcBus.java:240)
> > at
> > org.apache.drill.common.SerializedExecutor.execute(
> > SerializedExecutor.java:123)
> > at
> > org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:274)
> > at
> > org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:245)
> > at
> > io.netty.handler.codec.MessageToMessageDecoder.channelRead(
> > MessageToMessageDecoder.java:89)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(
> > AbstractChannelHandlerContext.java:339)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> > AbstractChannelHandlerContext.java:324)
> > at
> > io.netty.handler.timeout.IdleStateHandler.channelRead(
> > IdleStateHandler.java:254)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(
> > AbstractChannelHandlerContext.java:339)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> > AbstractChannelHandlerContext.java:324)
> > at
> > io.netty.handler.codec.MessageToMessageDecoder.channelRead(
> > MessageToMessageDecoder.java:103)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(
> > AbstractChannelHandlerContext.java:339)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> > AbstractChannelHandlerContext.java:324)
> > at
> > io.netty.handler.codec.ByteToMessageDecoder.channelRead(
> > ByteToMessageDecoder.java:242)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(
> > AbstractChannelHandlerContext.java:339)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> > AbstractChannelHandlerContext.java:324)
> > at
> > io.netty.channel.ChannelInboundHandlerAdapter.channelRead(
> > ChannelInboundHandlerAdapter.java:86)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(
> > AbstractChannelHandlerContext.java:339)
> > at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
> > AbstractChannelHandlerContext.java:324)
> > at
> > io.netty.channel.DefaultChannelPipeline.fireChannelRead(
> > DefaultChannelPipeline.java:847)
> > at
> > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(
> > AbstractNioByteChannel.java:131)
> > at
> > io.netty.channel.nio.NioEventLoop.processSelectedKey(
> > NioEventLoop.java:511)
> > at
> > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(
> > NioEventLoop.java:468)
> > at
> > io.netty.channel.nio.NioEventLoop.processSelectedKeys(
> > NioEventLoop.java:382)
> > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
> > at
> > io.netty.util.concurrent.SingleThreadEventExecutor$2.
> > run(SingleThreadEventExecutor.java:111)
> > at java.lang.Thread.run(Thread.java:745)
> >
> >
> > Regards,
> > *Anup Tiwari*
> >
>