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

Julien Le Dem commented on PIG-2574:
------------------------------------

Overall, this looks good to me.

Here are my comments, mostly details. Some of them are about existing code that 
has been moved.

1)
{code}
return listener != null ? (PigProgressNotificationListener) listener : null;
{code}
if listener is null you can still cast it.
just return (PigProgressNotificationListener) listener;

2)
{code}
int reducers = (int)Math.ceil((totalInputFileSize+0.0) / bytesPerReducer);
reducers = Math.max(1, reducers); 
reducers = Math.min(maxReducers, reducers);
{code}
use a cast (double)totalInputFileSize to convert to double.
cast the final result to int instead. That will avoid bad conversion to integer 
if bytesPerReducer is small.

3)
{code}
public static Object instantiateObjectFromParams(Configuration conf, String 
classParamKey, String argParamKey) {
{code}
you can do the following so that classes using it don't need to cast. You still 
get a ClassCastException if it's not the correct type.
{code}
@SuppressWarnings("unchecked")
public static <T> T instantiateObjectFromParams(Configuration conf, String 
classParamKey, String argParamKey) {
   ...
   return (T)result;
}
{code}
If you want to handle the cast with a better message you can do this (notice we 
don't need to suppress warnings anymore):
{code}
  public static <T> T get(Configuration conf, String classParamKey, String 
argParamKey, Class<T> clazz) {
    try {
      ...
      return clazz.cast(result);
    } catch (ClassCastException e) {
      throw new ExecException("the class defined by "+classParamKey+" in conf 
is not of type "+clazz.getName(), e);
    }
  }
{code}
                
> Make reducer estimator plugable
> -------------------------------
>
>                 Key: PIG-2574
>                 URL: https://issues.apache.org/jira/browse/PIG-2574
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Bill Graham
>            Assignee: Bill Graham
>              Labels: 0.10_blocker
>             Fix For: 0.10, 0.11
>
>         Attachments: pig-2574_1.patch, pig-2574_2.patch, pig-2574_3.patch, 
> pig-2574_4.patch, pig-2574_5.patch
>
>
> I'd like to refactor the logic contained in this method into a pluggable 
> interface:
> {noformat}
> static int JobControlCompiler.estimateNumberOfReducers(Configuration conf, 
> List<POLoad> lds);
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to