[ 
https://issues.apache.org/jira/browse/PIG-3059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13544219#comment-13544219
 ] 

Russell Jurney commented on PIG-3059:
-------------------------------------

Regarding Avro, in reading 
https://github.com/apache/avro/blob/trunk/lang/java/avro/src/main/java/org/apache/avro/file/DataFileReader.java
 - it looks like you can still sync to the next record under most bad reads. We 
should do so.

You're right about a bad sync halting things, but in the case of a bad sync - 
you might try advancing by some amount using seek() and then sync'ing again? I 
think this would work. I could be wrong, but in looking how seeks work - I 
think that would be ok. Kinda neat, maybe? Worst case, we would only throw out 
inputsplits on a bad sync(), not a bad read(). length() should help, as might 
pastSync(), skip() and available()

I agree with Dmitriy's feedback, thanks for taking the time.
                
> Global configurable minimum 'bad record' thresholds
> ---------------------------------------------------
>
>                 Key: PIG-3059
>                 URL: https://issues.apache.org/jira/browse/PIG-3059
>             Project: Pig
>          Issue Type: New Feature
>          Components: impl
>    Affects Versions: 0.11
>            Reporter: Russell Jurney
>            Assignee: Cheolsoo Park
>             Fix For: 0.12
>
>         Attachments: avro_test_files-2.tar.gz, PIG-3059-2.patch, 
> PIG-3059.patch
>
>
> See PIG-2614. 
> Pig dies when one record in a LOAD of a billion records fails to parse. This 
> is almost certainly not the desired behavior. elephant-bird and some other 
> storage UDFs have minimum thresholds in terms of percent and count that must 
> be exceeded before a job will fail outright.
> We need these limits to be configurable for Pig, globally. I've come to 
> realize what a major problem Pig's crashing on bad records is for new Pig 
> users. I believe this feature can greatly improve Pig.
> An example of a config would look like:
> pig.storage.bad.record.threshold=0.01
> pig.storage.bad.record.min=100
> A thorough discussion of this issue is available here: 
> http://www.quora.com/Big-Data/In-Big-Data-ETL-how-many-records-are-an-acceptable-loss

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to