[
https://issues.apache.org/jira/browse/DRILL-1245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14339266#comment-14339266
]
Hanifi Gunes commented on DRILL-1245:
-------------------------------------
Please correct this statement if found wrong. However, what makes you think
this does not work, I believe, is in fact error propagation is broken.
Since running the same query on the same file raises:
{code}
org.apache.drill.common.exceptions.DrillRuntimeException: Error parsing JSON. -
Parser was at record: 4 column: 24
at
org.apache.drill.exec.store.easy.json.JSONRecordReader.handleAndRaise(JSONRecordReader.java:102)
~[classes/:na]
at
org.apache.drill.exec.store.easy.json.JSONRecordReader.next(JSONRecordReader.java:149)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:165)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:67)
[classes/:na]
at
org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:97)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:57)
[classes/:na]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:115)
[classes/:na]
at
org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:303)
[classes/:na]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_65]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid numeric
value: Leading zeroes not allowed
at [Source: org.apache.drill.exec.vector.complex.fn.JsonReader@6a849abf; line:
3, column: 24]
at
com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1419)
~[jackson-core-2.4.3.jar:2.4.3]
at
com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:508)
~[jackson-core-2.4.3.jar:2.4.3]
at
com.fasterxml.jackson.core.base.ParserBase.reportInvalidNumber(ParserBase.java:943)
~[jackson-core-2.4.3.jar:2.4.3]
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._verifyNoLeadingZeroes(UTF8StreamJsonParser.java:1348)
~[jackson-core-2.4.3.jar:2.4.3]
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parsePosNumber(UTF8StreamJsonParser.java:1195)
~[jackson-core-2.4.3.jar:2.4.3]
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:726)
~[jackson-core-2.4.3.jar:2.4.3]
at
org.apache.drill.exec.vector.complex.fn.JsonReader.writeData(JsonReader.java:240)
~[classes/:na]
at
org.apache.drill.exec.vector.complex.fn.JsonReader.writeDataSwitch(JsonReader.java:208)
~[classes/:na]
at
org.apache.drill.exec.vector.complex.fn.JsonReader.writeToVector(JsonReader.java:182)
~[classes/:na]
at
org.apache.drill.exec.vector.complex.fn.JsonReader.write(JsonReader.java:156)
~[classes/:na]
at
org.apache.drill.exec.store.easy.json.JSONRecordReader.next(JSONRecordReader.java:125)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:165)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:67)
[classes/:na]
at
org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:97)
~[classes/:na]
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:57)
[classes/:na]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:115)
[classes/:na]
at
org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:303)
[classes/:na]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_65]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
... 10 more
{code}
> Drill should pinpoint to the "Problem Record" when it fails to parse a json
> file
> --------------------------------------------------------------------------------
>
> Key: DRILL-1245
> URL: https://issues.apache.org/jira/browse/DRILL-1245
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - JSON
> Reporter: Rahul Challapalli
> Assignee: Sudheesh Katkam
> Fix For: 0.8.0
>
> Attachments: DRILL-1245.1.patch.txt
>
>
> git.commit.id.abbrev=98b208e
> Data :
> {code}
> {"name":"name1", "id":1}
> {"name":"name2", "id":2}
> {"name":"name3", "id":3}
> {"name":"name4", "id":04}
> {"name":"name5", "id":5}
> {code}
> Query :
> {code}
> select * from cp.`file.json`;
> Query failed: Screen received stop request sent. Invalid numeric value:
> Leading zeroes not allowed
> at [Source: java.io.BufferedReader@202fbdb4; line: 1, column: 24]
> [c11a17bd-1a3a-4eed-a848-6d79225399d3]
> Error: exception while executing query: Failure while trying to get next
> result batch. (state=,code=0)
> {code}
> The msg should point to the exact record which is causing the problem as it
> will be hard looking into the data and finding out the problem record.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)