Package com.sap.hadoop.windowing.query2.definition

Examples of com.sap.hadoop.windowing.query2.definition.OrderDef


    {
      executor.execute(q, this);
    }
    finally
    {
      HiveTableDef hiveTable = q.getHiveTableDef();
      if ( hiveTable instanceof HiveQueryDef )
      {
        String tableName = hiveTable.getHiveTableSpec().getTableName();
        hiveQryExec.dropTable(tableName);
      }
     
    }
   
View Full Code Here


      throw new WindowingException("Ranking Functions can take no arguments");
    }
   
    QueryInputDef inpDef = windowTableFnDef.getInput();
    InputInfo inpInfo = qDef.getTranslationInfo().getInputInfo(inpDef);
    OrderDef oDef = getTableFuncOrderDef(windowTableFnDef);
    ArrayList<OrderColumnDef> oCols = oDef.getColumns();
    for(OrderColumnDef oCol : oCols)
    {
      wFnDef.addArg(TranslateUtils.buildArgDef(qDef, inpInfo, oCol.getExpression()));
    }
  }
View Full Code Here

    {
      throw new WindowingException(
          sprintf("Window Function '%s' has an incompatible partition clause", wFnDef.getSpec()));
    }
   
    OrderDef tOrder = tWindow == null ? null : tWindow.getOrderDef();
    OrderDef fOrder = fWindow == null ? null : fWindow.getOrderDef();
    if ( !TranslateUtils.isCompatible(tOrder, fOrder))
    {
      throw new WindowingException(
          sprintf("Window Function '%s' has an incompatible order clause", wFnDef.getSpec()));
    }
View Full Code Here

        " into path='/tmp/wout2'" +
        " serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'" +
        " with serdeproperties('field.delim'=',')" +
        " format 'org.apache.hadoop.mapred.TextOutputFormat'");
   
    OrderDef oDef = qDef.getInput().getWindow().getOrderDef();
    assert oDef != null;
    assert oDef.getSpec().getColumns().get(0).getColumnName() == "p_mfgr";
   
  }
View Full Code Here

      }
      visitor.visit(pDef);
    }

   
    OrderDef oDef = window.getOrderDef();
    if(oDef != null){
      ArrayList<OrderColumnDef> ocols = oDef.getColumns();
      for(OrderColumnDef ocol : ocols)
      {
        visitor.visit(ocol);
      }
      visitor.visit(oDef);
View Full Code Here

   
    PartitionSpec pSpec = wSpec.getPartition();
    OrderSpec oSpec = wSpec.getOrder();
    WindowFrameSpec wFrameSpec = wSpec.getWindow();
    PartitionDef pDef = translatePartition(qDef, iInfo, pSpec);
    OrderDef oDef = translateOrder(qDef, inputDesc, iInfo, oSpec, pDef);
    WindowFrameDef wdwDef = translateWindowFrame(qDef, wFrameSpec, iInfo);
   
    wDef.setPartDef(pDef);
    wDef.setOrderDef(oDef);
    wDef.setWindow(wdwDef);
View Full Code Here

   
    if ( spec == null || spec.getColumns() == null || spec.getColumns().size() == 0)
    {
      if ( pDef == null )
        return null;
      return new OrderDef(pDef);
    }
   
    if ( pDef == null )
    {
      throw new WindowingException(sprintf("Input %s cannot have an Order spec w/o a Partition spec", inputDesc));
    }
   
    OrderDef oDef = new OrderDef(spec);
    for(OrderColumnSpec colSpec : spec.getColumns())
    {
      OrderColumnDef cDef = translateOrderColumn(qDef, iInfo, colSpec);
      oDef.addColumn(cDef);
    }
   
    /*
     * either all partition columns must be in Order list or none must be specified.
     * If none are specified then add them all.
     */
    int numOfPartColumns = 0;
    List<OrderColumnDef> orderCols = oDef.getColumns();
    List<ColumnDef> partCols = pDef.getColumns();
    int chkSize = partCols.size();
    chkSize = chkSize > orderCols.size() ? orderCols.size() : chkSize;
    for(int i=0; i < chkSize; i++)
    {
      if ( orderCols.get(i).getSpec().getColumnName().equals(partCols.get(i).getSpec().getColumnName()))
      {
        numOfPartColumns++;
      }
      else
        break;
    }
   
    if ( numOfPartColumns != 0 && numOfPartColumns != partCols.size())
    {
      throw new WindowingException(
          sprintf("For Input %s:n all partition columns must be in order clause or none should be specified",
              inputDesc)
          );
    }
   
    ArrayList<OrderColumnDef> combinedOrderCols = new ArrayList<OrderColumnDef>();
    if ( numOfPartColumns == 0)
    {
      for(ColumnDef cDef : partCols)
      {
        OrderColumnDef ocDef = new OrderColumnDef(cDef);
        combinedOrderCols.add(ocDef);
      }
      combinedOrderCols.addAll(orderCols);
      oDef.setColumns(combinedOrderCols);
    }
   
    return oDef;
  }
View Full Code Here

    throws WindowingException
  {
    WindowDef tWindow = tFnDef.getWindow();
    WindowDef fWindow = wFnDef.getWindow();
   
    PartitionDef tPart = tWindow == null ? null : tWindow.getPartDef();
    PartitionDef fPart = fWindow == null ? null : fWindow.getPartDef();
   
    if ( !TranslateUtils.isCompatible(tPart, fPart))
    {
      throw new WindowingException(
          sprintf("Window Function '%s' has an incompatible partition clause", wFnDef.getSpec()));
View Full Code Here

    qdw.walk(qDef);
  }

  protected void setupKeysWrapper(ObjectInspector inputOI) throws HiveException
  {
    PartitionDef pDef = RuntimeUtils.getFirstTableFunction(qDef).getWindow().getPartDef();
    ArrayList<ColumnDef> cols = pDef.getColumns();
    int numCols = cols.size();
    ExprNodeEvaluator[] keyFields = new ExprNodeEvaluator[numCols];
    ObjectInspector[] keyOIs = new ObjectInspector[numCols];
    ObjectInspector[] currentKeyOIs = new ObjectInspector[numCols];
   
View Full Code Here

 
  public QueryDef translate(QuerySpec qSpec, WindowingShell wShell) throws WindowingException
  {
    // clone the cfg
    HiveConf qCfg = new HiveConf(wShell.getCfg());
    QueryDef qry = new QueryDef();
    qry.setSpec(qSpec);
   
    QueryTranslationInfo transInfo = new QueryTranslationInfo();
    transInfo.setHiveCfg(qCfg);
    transInfo.setWshell(wShell);
    try
    {
      transInfo.setHive(Hive.get(qCfg));
      transInfo.setHiveMSClient(HiveUtils.getClient(qCfg));
    }
    catch(HiveException he)
    {
      throw new WindowingException(he);
    }
    qry.setTranslationInfo(transInfo);
   
    InputTranslation.translate(qry);
    WhereTranslation.translate(qry);
    OutputTranslation.translate(qry);
View Full Code Here

TOP

Related Classes of com.sap.hadoop.windowing.query2.definition.OrderDef

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.