This definitely looks like a bug, could you open a JIRA and share as much
information as possible about the structure of the CSV file and the number
of records.

On Tue, Jan 26, 2016 at 7:38 PM, Matt <bsg...@gmail.com> wrote:

> The CTAS with fails with:
>
> ~~~
> Error: SYSTEM ERROR: IllegalArgumentException: length: -260 (expected: >=
> 0)
>
> Fragment 1:2
>
> [Error Id: 1807615e-4385-4f85-8402-5900aaa568e9 on es07:31010]
>
>   (java.lang.IllegalArgumentException) length: -260 (expected: >= 0)
>     io.netty.buffer.AbstractByteBuf.checkIndex():1131
>     io.netty.buffer.PooledUnsafeDirectByteBuf.nioBuffer():344
>     io.netty.buffer.WrappedByteBuf.nioBuffer():727
>     io.netty.buffer.UnsafeDirectLittleEndian.nioBuffer():26
>     io.netty.buffer.DrillBuf.nioBuffer():356
>
> org.apache.drill.exec.store.ParquetOutputRecordWriter$VarCharParquetConverter.writeField():1842
>     org.apache.drill.exec.store.EventBasedRecordWriter.write():62
>     org.apache.drill.exec.physical.impl.WriterRecordBatch.innerNext():106
>     org.apache.drill.exec.record.AbstractRecordBatch.next():162
>     org.apache.drill.exec.physical.impl.BaseRootExec.next():104
>
> org.apache.drill.exec.physical.impl.SingleSenderCreator$SingleSenderRootExec.innerNext():93
>     org.apache.drill.exec.physical.impl.BaseRootExec.next():94
>     org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():256
>     org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():250
>     java.security.AccessController.doPrivileged():-2
>     javax.security.auth.Subject.doAs():415
>     org.apache.hadoop.security.UserGroupInformation.doAs():1657
>     org.apache.drill.exec.work.fragment.FragmentExecutor.run():250
>     org.apache.drill.common.SelfCleaningRunnable.run():38
>     java.util.concurrent.ThreadPoolExecutor.runWorker():1145
>     java.util.concurrent.ThreadPoolExecutor$Worker.run():615
>     java.lang.Thread.run():745 (state=,code=0)
> ~~~
>
> And a simple SELECT * fails with:
>
> ~~~
> java.lang.IndexOutOfBoundsException: index: 547681, length: 1 (expected:
> range(0, 547681))
>         at
> io.netty.buffer.AbstractByteBuf.checkIndex(AbstractByteBuf.java:1134)
>         at
> io.netty.buffer.PooledUnsafeDirectByteBuf.getBytes(PooledUnsafeDirectByteBuf.java:136)
>         at io.netty.buffer.WrappedByteBuf.getBytes(WrappedByteBuf.java:289)
>         at
> io.netty.buffer.UnsafeDirectLittleEndian.getBytes(UnsafeDirectLittleEndian.java:26)
>         at io.netty.buffer.DrillBuf.getBytes(DrillBuf.java:586)
>         at io.netty.buffer.DrillBuf.getBytes(DrillBuf.java:586)
>         at io.netty.buffer.DrillBuf.getBytes(DrillBuf.java:586)
>         at io.netty.buffer.DrillBuf.getBytes(DrillBuf.java:586)
>         at
> org.apache.drill.exec.vector.VarCharVector$Accessor.get(VarCharVector.java:443)
>         at
> org.apache.drill.exec.vector.accessor.VarCharAccessor.getBytes(VarCharAccessor.java:125)
>         at
> org.apache.drill.exec.vector.accessor.VarCharAccessor.getString(VarCharAccessor.java:146)
>         at
> org.apache.drill.exec.vector.accessor.VarCharAccessor.getObject(VarCharAccessor.java:136)
>         at
> org.apache.drill.exec.vector.accessor.VarCharAccessor.getObject(VarCharAccessor.java:94)
>         at
> org.apache.drill.exec.vector.accessor.BoundCheckingAccessor.getObject(BoundCheckingAccessor.java:148)
>         at
> org.apache.drill.jdbc.impl.TypeConvertingSqlAccessor.getObject(TypeConvertingSqlAccessor.java:795)
>         at
> org.apache.drill.jdbc.impl.AvaticaDrillSqlAccessor.getObject(AvaticaDrillSqlAccessor.java:179)
>         at
> net.hydromatic.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:351)
>         at
> org.apache.drill.jdbc.impl.DrillResultSetImpl.getObject(DrillResultSetImpl.java:420)
>         at sqlline.Rows$Row.<init>(Rows.java:157)
>         at sqlline.IncrementalRows.hasNext(IncrementalRows.java:63)
>         at
> sqlline.TableOutputFormat$ResizingRowsProvider.next(TableOutputFormat.java:87)
>         at sqlline.TableOutputFormat.print(TableOutputFormat.java:118)
>         at sqlline.SqlLine.print(SqlLine.java:1593)
>         at sqlline.Commands.execute(Commands.java:852)
>         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)
> ~~~
>
> It also looks like if I run the SELECT from a bash shell as "sqlline -u
> ... -f test.sql 2>&1 > test.out" upon the error the sqlline session "locks
> up". No errors spool to the out file and the Java thread can only be
> terminated with a kill -9. It can be backgrounded with ^z, but won't
> respond to a ^c.
>
>
> On 26 Jan 2016, at 14:07, Abdel Hakim Deneche wrote:
>
> It's an internal buffer index. Can you try enabling verbose errors and run
>> the query again, this should provide us with more details about the error.
>> You can enable verbose error by running the following before the select *:
>>
>> alter session set `exec.errors.verbose`=true;
>>
>> thanks
>>
>> On Tue, Jan 26, 2016 at 11:01 AM, Matt <bsg...@gmail.com> wrote:
>>
>> Putting the "select * from
>>> `/csv/customer/hourly/customer_201510170000.csv`;" in a local .sql file,
>>> and executing it with sqlline > /dev/null (to avoid a ton of scrolling)
>>> results in:
>>>
>>> ~~~
>>> index: 418719, length: 2 (expected: range(0, 418719))
>>>                                                         Aborting command
>>> set because "force" is false and command failed: "select * from
>>> `/csv/customer/hourly/customer_201510170000.csv`;"
>>> Closing: org.apache.drill.jdbc.impl.DrillConnectionImpl
>>> ~~~
>>>
>>> Is that index a byte or line offset?
>>>
>>>
>>> On 26 Jan 2016, at 12:55, Abdel Hakim Deneche wrote:
>>>
>>> Does a select * on the same data also fail ?
>>>
>>>>
>>>> On Tue, Jan 26, 2016 at 9:44 AM, Matt <bsg...@gmail.com> wrote:
>>>>
>>>> Getting some errors when attempting to create Parquet files from CSV
>>>> data,
>>>>
>>>>> and trying to determine if it is due to the format of the source data.
>>>>>
>>>>> Its a fairly simple format of
>>>>> "datetime,key,key,key,numeric,numeric,numeric, ..." with 32 of those
>>>>> numeric columns in total.
>>>>>
>>>>> The source data does contain a lot missing values for the numeric
>>>>> columns,
>>>>> and those are represented by as consecutive delimiters:
>>>>> ""datetime,key,key,key,numeric,,,,,,..."
>>>>>
>>>>> Could this be causing the CTAS to fail with these types of errors? Or
>>>>> is
>>>>> there another cause to look for?
>>>>>
>>>>> ~~~
>>>>> Error: SYSTEM ERROR: IllegalArgumentException: length: -260 (expected:
>>>>> >=
>>>>> 0)
>>>>>
>>>>> │·······························································
>>>>>
>>>>>
>>>>>
>>>>> │·······························································
>>>>> Fragment 1:2
>>>>> ~~~
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>>
>>>> Abdelhakim Deneche
>>>>
>>>> Software Engineer
>>>>
>>>> <http://www.mapr.com/>
>>>>
>>>>
>>>> Now Available - Free Hadoop On-Demand Training
>>>> <
>>>>
>>>> http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available
>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>> --
>>
>> Abdelhakim Deneche
>>
>> Software Engineer
>>
>> <http://www.mapr.com/>
>>
>>
>> Now Available - Free Hadoop On-Demand Training
>> <
>> http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available
>> >
>>
>


-- 

Abdelhakim Deneche

Software Engineer

  <http://www.mapr.com/>


Now Available - Free Hadoop On-Demand Training
<http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available>

Reply via email to