Examples of LanguageAndType


Examples of org.apache.giraph.hive.common.LanguageAndType

   */
  private static Class initValueType(Configuration conf, GraphType graphType,
      Object jythonOrJavaClass, JythonFactoryBase jythonFactory,
      PythonInterpreter interpreter) {
    Class<? extends Writable> writableClass = graphType.interfaceClass();
    LanguageAndType langType = processUserType(jythonOrJavaClass, interpreter);

    switch (langType.getLanguage()) {
    case JAVA:
      GRAPH_TYPE_LANGUAGES.set(conf, graphType, Language.JAVA);
      checkImplements(langType, writableClass, interpreter);
      return langType.getJavaClass();
    case JYTHON:
      GRAPH_TYPE_LANGUAGES.set(conf, graphType, Language.JYTHON);
      String jythonClassName = langType.getJythonClassName();
      PyObject jythonClass = interpreter.get(jythonClassName);
      if (jythonClass == null) {
        throw new IllegalArgumentException("Could not find Jython class " +
            jythonClassName + " for parameter " + graphType);
      }
      PyObject valuePyObj = jythonClass.__call__();

      // Check if the Jython type implements Writable. If so, just use it
      // directly. Otherwise, wrap it in a class that does using pickle.
      Object pyWritable = valuePyObj.__tojava__(writableClass);
      if (pyWritable.equals(Py.NoConversion)) {
        GiraphConstants.GRAPH_TYPES_NEEDS_WRAPPERS.set(conf, graphType, true);
        jythonFactory.useThisFactory(conf, jythonClassName);
        return JythonWritableWrapper.class;
      } else {
        GiraphConstants.GRAPH_TYPES_NEEDS_WRAPPERS.set(conf, graphType, false);
        jythonFactory.useThisFactory(conf, jythonClassName);
        return writableClass;
      }
    default:
      throw new IllegalArgumentException("Don't know how to handle " +
          LanguageAndType.class.getSimpleName() + " with language " +
          langType.getLanguage());
    }
  }
View Full Code Here

Examples of org.apache.giraph.hive.common.LanguageAndType

  private static void initHiveReadersWriters(Configuration conf,
      JythonJob jythonJob, PythonInterpreter interpreter) {
    if (!userTypeIsJavaPrimitiveWritable(jythonJob.getVertex_id())) {
      checkTypeWithHive(jythonJob.getVertex_id(), GraphType.VERTEX_ID);

      LanguageAndType idReader = processUserType(
          jythonJob.getVertex_id().getHive_reader(), interpreter);
      checkImplements(idReader, JythonHiveReader.class, interpreter);
      checkArgument(idReader.getLanguage() == Language.JYTHON);
      GiraphHiveConstants.VERTEX_ID_READER_JYTHON_NAME.set(conf,
          idReader.getJythonClassName());

      LanguageAndType idWriter = processUserType(
          jythonJob.getVertex_id().getHive_writer(), interpreter);
      checkImplements(idWriter, JythonHiveWriter.class, interpreter);
      checkArgument(idWriter.getLanguage() == Language.JYTHON);
      GiraphHiveConstants.VERTEX_ID_WRITER_JYTHON_NAME.set(conf,
          idWriter.getJythonClassName());
    }

    if (hasVertexInputs(jythonJob) &&
        !userTypeIsJavaPrimitiveWritable(jythonJob.getVertex_value())) {
      checkTypeWithHive(jythonJob.getVertex_value(), GraphType.VERTEX_VALUE);

      LanguageAndType valueReader = processUserType(
          jythonJob.getVertex_value().getHive_reader(), interpreter);
      checkImplements(valueReader, JythonHiveReader.class, interpreter);
      checkArgument(valueReader.getLanguage() == Language.JYTHON);
      VERTEX_VALUE_READER_JYTHON_NAME.set(conf,
          valueReader.getJythonClassName());

      LanguageAndType valueWriter = processUserType(
          jythonJob.getVertex_value().getHive_writer(), interpreter);
      checkImplements(valueWriter, JythonHiveWriter.class, interpreter);
      checkArgument(valueWriter.getLanguage() == Language.JYTHON);
      VERTEX_VALUE_WRITER_JYTHON_NAME.set(conf,
          valueWriter.getJythonClassName());
    }

    if (hasEdgeInputs(jythonJob) &&
        !userTypeIsJavaPrimitiveWritable(jythonJob.getEdge_value())) {
      checkNotNull(jythonJob.getEdge_value().getHive_reader(),
          "edge_value.hive_reader cannot be null");

      LanguageAndType edgeReader = processUserType(
          jythonJob.getEdge_value().getHive_reader(), interpreter);
      checkImplements(edgeReader, JythonHiveReader.class, interpreter);
      checkArgument(edgeReader.getLanguage() == Language.JYTHON);
      GiraphHiveConstants.EDGE_VALUE_READER_JYTHON_NAME.set(conf,
          edgeReader.getJythonClassName());
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.