• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ShortWritable类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.io.ShortWritable的典型用法代码示例。如果您正苦于以下问题:Java ShortWritable类的具体用法?Java ShortWritable怎么用?Java ShortWritable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ShortWritable类属于org.apache.hadoop.io包,在下文中一共展示了ShortWritable类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getWritableInstance

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/**
 * Returns the corresponding Writable object for this column type.
 */
public Writable getWritableInstance(com.cloudera.recordservice.core.Schema.Type type) {
  switch (type) {
    case BOOLEAN: return new BooleanWritable();
    case TINYINT: return new ByteWritable();
    case SMALLINT: return new ShortWritable();
    case INT: return new IntWritable();
    case BIGINT: return new LongWritable();
    case FLOAT: return new FloatWritable();
    case DOUBLE: return new DoubleWritable();
    case VARCHAR:
    case CHAR:
    case STRING: return new Text();
    case TIMESTAMP_NANOS: return new TimestampNanosWritable();
    case DECIMAL: return new DecimalWritable();
    default: throw new UnsupportedOperationException(
        "Unexpected type: " + toString());
  }
}
 
开发者ID:cloudera,项目名称:RecordServiceClient,代码行数:22,代码来源:RecordServiceRecord.java


示例2: compareTo

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
public int compareTo(ShortArrayWritable that) {
	Writable[] self = this.get();
	Writable[] other = that.get();

	if (self.length != other.length) {
		// Length decides first.
		return Integer.valueOf(self.length).compareTo(Integer.valueOf(other.length));
	} else {
		// Then, compare every pair of elements.
		for (int i = 0; i < self.length; i++) {
			short s = ((ShortWritable) self[i]).get();
			short o = ((ShortWritable) other[i]).get();
			if (s != o) return Integer.valueOf(s).compareTo(Integer.valueOf(o));
		}
		// Same length, same elements => same array.
		return 0;
	}
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:19,代码来源:ShortArrayWritable.java


示例3: reduce

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
protected void reduce(ShortWritable inKey,
		Iterable<FloatArrayWritable> inValues, Context context)
		throws IOException, InterruptedException {

	// This task sums all the partial results for one stripe of the vector
	// v_k and adds the teleportation factor.

	Configuration conf = context.getConfiguration();
	int numPages = Integer.parseInt(conf.get("pagerank.num_pages"));
	float beta = Float.parseFloat(conf.get("pagerank.damping_factor"));

	FloatWritable[] vi = null;

	for (FloatArrayWritable inValue : inValues) {
		Writable[] partialVi = inValue.get();

		if (vi == null) {
			// vi is initialized here in order to know the correct size of
			// the stripe (the last stripe can be incomplete).
			vi = new FloatWritable[partialVi.length];
			for (int k = 0; k < vi.length; k++) {
				vi[k] = new FloatWritable(0);
			}
		}

		// Sum the partial results.
		for (int k = 0; k < vi.length; k++) {
			vi[k].set(vi[k].get() + ((FloatWritable) partialVi[k]).get());
		}
	}

	// Add the teleportation factor.
	for (int k = 0; k < vi.length; k++) {
		 vi[k].set(beta * vi[k].get() + (1 - beta) / numPages);
	}

	context.write(inKey, new FloatArrayWritable(vi));
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:40,代码来源:PageRankIterationReducer.java


示例4: pageRankIteration

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
private void pageRankIteration(int iter, Configuration conf, Path outputDir)
		throws Exception {

	// This job performs an iteration of the power iteration method to
	// compute PageRank. The map task processes each block M_{i,j}, loads
	// the corresponding stripe j of the vector v_{k-1} and produces the
	// partial result of the stripe i of the vector v_k. The reduce task
	// sums all the partial results of v_k and adds the teleportation factor
	// (the combiner only sums all the partial results). See Section 5.2
	// (and 5.2.3 in particular) of Mining of Massive Datasets
	// (http://infolab.stanford.edu/~ullman/mmds.html) for details. The
	// output is written in a "vk" subdir of the output dir, where k is the
	// iteration number. MapFileOutputFormat is used to keep an array of the
	// stripes of v.

	Job job = Job.getInstance(conf, "PageRank:Iteration");

	job.setJarByClass(PageRank.class);
	job.setInputFormatClass(SequenceFileInputFormat.class);
	job.setMapperClass(PageRankIterationMapper.class);
	job.setMapOutputKeyClass(ShortWritable.class);
	job.setMapOutputValueClass(FloatArrayWritable.class);
	job.setCombinerClass(PageRankIterationCombiner.class);
	job.setReducerClass(PageRankIterationReducer.class);
	job.setOutputFormatClass(MapFileOutputFormat.class);
	job.setOutputKeyClass(ShortWritable.class);
	job.setOutputValueClass(FloatArrayWritable.class);
	FileInputFormat.addInputPath(job, new Path(outputDir, "M"));
	FileOutputFormat.setOutputPath(job, new Path(outputDir, "v" + iter));

	job.waitForCompletion(true);
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:33,代码来源:PageRank.java


示例5: map

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
public void map(ShortWritable inKey, FloatArrayWritable inValue,
		Context context) throws IOException, InterruptedException {

	Configuration conf = context.getConfiguration();
	short blockSize = Short.parseShort(conf.get("pagerank.block_size"));
	int topResults = Integer.parseInt(conf.get("pagerank.top_results"));

	Writable[] vStripe = inValue.get();
	for (int i = 0; i < vStripe.length; i++) {
		int page = 1 + (inKey.get() - 1) * blockSize + i;
		float pageRank = ((FloatWritable) vStripe[i]).get();

		// The elements in the queue are sorted (in non-decreasing order) by
		// PageRank. The queue is filled up until it contains topResults
		// elements. Then, a new element will be added only if its PageRank
		// is greater than the lowest PageRank in the queue. If the queue is
		// full and a new element is added, the one with the lowest PageRank
		// is removed from the queue.
		if (topN.size() < topResults || pageRank >= topN.peek().getKey()) {
			topN.add(new AbstractMap.SimpleEntry<Float, Integer>(pageRank, page));
			if (topN.size() > topResults) {
				topN.poll();
			}
		}
	}
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:28,代码来源:PageRankTopNMapper.java


示例6: reduce

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
protected void reduce(ShortWritable inKey,
		Iterable<FloatArrayWritable> inValues, Context context)
		throws IOException, InterruptedException {

	// This task sums all the partial results for one stripe of the vector
	// v_k. It is a separate class since PageRankIterationReducer also adds
	// the teleportation factor.

	FloatWritable[] vi = null;

	for (FloatArrayWritable inValue : inValues) {
		Writable[] partialVi = inValue.get();

		if (vi == null) {
			// vi is initialized here in order to know the correct size of
			// the stripe (the last stripe can be incomplete).
			vi = new FloatWritable[partialVi.length];
			for (int k = 0; k < vi.length; k++) {
				vi[k] = new FloatWritable(0);
			}
		}

		// Sum the partial results.
		for (int k = 0; k < vi.length; k++) {
			vi[k].set(vi[k].get() + ((FloatWritable) partialVi[k]).get());
		}
	}

	context.write(inKey, new FloatArrayWritable(vi));
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:32,代码来源:PageRankIterationCombiner.java


示例7: setupMapper

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
private void setupMapper(String intermediateTable) throws IOException {
//        FileInputFormat.setInputPaths(job, input);

        String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
        HCatInputFormat.setInput(job, dbTableNames[0],
                dbTableNames[1]);
        
        job.setInputFormatClass(HCatInputFormat.class);
        job.setMapperClass(FactDistinctColumnsMapper.class);
        job.setCombinerClass(FactDistinctColumnsCombiner.class);
        job.setMapOutputKeyClass(ShortWritable.class);
        job.setMapOutputValueClass(Text.class);
    }
 
开发者ID:KylinOLAP,项目名称:Kylin,代码行数:14,代码来源:FactDistinctColumnsJob.java


示例8: writeObject

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/**
 * Writes an {@link Object} to the {@link DataOutput}.
 * 
 * @param obj
 *            the object to write.
 * @param out
 *            the data output stream.
 * @throws IOException
 *             if I/O error occurs.
 */
public static final void writeObject(Object obj, DataOutput out)
		throws IOException {
	try {
		if (obj == null) {
			throw new IOException("Writing object is not defined: null.");
		} else if (ClassUtils.isBoolean(obj)) {
			(new BooleanWritable((boolean) obj)).write(out);
		} else if (ClassUtils.isByte(obj)) {
			(new ByteWritable((byte) obj)).write(out);
		} else if (ClassUtils.isShort(obj)) {
			(new ShortWritable((short) obj)).write(out);
		} else if (ClassUtils.isInteger(obj)) {
			(new IntWritable((int) obj)).write(out);
		} else if (ClassUtils.isLong(obj)) {
			(new LongWritable((long) obj)).write(out);
		} else if (ClassUtils.isFloat(obj)) {
			(new FloatWritable((float) obj)).write(out);
		} else if (ClassUtils.isDouble(obj)) {
			(new DoubleWritable((double) obj)).write(out);
		} else if (ClassUtils.isString(obj)) {
			Text.writeString(out, (String) obj);
		} else if (ClassUtils.isEnum(obj)) {
			(new IntWritable(((Enum<?>) obj).ordinal())).write(out);
		} else if (ClassUtils.isArray(obj)) {
			int length = Array.getLength(obj);
			writeObject(length, out);
			for (int j = 0; j < length; j++) {
				writeObject(Array.get(obj, j), out);
			}
		} else {
			((Writable) obj).write(out);
		}
	} catch (IllegalArgumentException exc) {
		throw new IOException(exc);
	}
}
 
开发者ID:SHAF-WORK,项目名称:shaf,代码行数:47,代码来源:IOUtils.java


示例9: readShort

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/** read short value */
static short readShort(DataInput in) throws IOException {
  ShortWritable uShort = TL_DATA.get().U_SHORT;
  uShort.readFields(in);
  return uShort.get();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:7,代码来源:FSImageSerialization.java


示例10: writeShort

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/** write short value */
static void writeShort(short value, DataOutputStream out) throws IOException {
  ShortWritable uShort = TL_DATA.get().U_SHORT;
  uShort.set(value);
  uShort.write(out);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:7,代码来源:FSImageSerialization.java


示例11: getPrimitiveWritableObject

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
public ShortWritable getPrimitiveWritableObject(Object o) {
	return o == null ? null : new ShortWritable((Short)o);
}
 
开发者ID:mini666,项目名称:hive-phoenix-handler,代码行数:5,代码来源:PhoenixShortObjectInspector.java


示例12: reset

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/**
 * Resets the data in this RecordServiceRecord by translating the column data from the
 * given Row to the internal array of Writables (columnVals_).
 * Reads the column data from the given Row into this RecordServiceRecord. The
 * schema are expected to match, minimal error checks are performed.
 * This is a performance critical method.
 */
public void reset(Record record) {
  if (record.getSchema().cols.size() != schema_.getNumColumns()) {
    throw new IllegalArgumentException(String.format("Schema for new record does " +
      "not match existing schema: %d (new) != %d (existing)",
      record.getSchema().cols.size(), schema_.getNumColumns()));
  }

  for (int i = 0; i < schema_.getNumColumns(); ++i) {
    if (record.isNull(i)) {
      columnVals_[i] = null;
      continue;
    }
    columnVals_[i] = columnValObjects_[i];
    com.cloudera.recordservice.core.Schema.ColumnDesc cInfo = schema_.getColumnInfo(i);
    Preconditions.checkNotNull(cInfo);
    switch (cInfo.type.typeId) {
      case BOOLEAN:
        ((BooleanWritable) columnValObjects_[i]).set(record.nextBoolean(i));
        break;
      case TINYINT:
        ((ByteWritable) columnValObjects_[i]).set(record.nextByte(i));
        break;
      case SMALLINT:
        ((ShortWritable) columnValObjects_[i]).set(record.nextShort(i));
        break;
      case INT:
        ((IntWritable) columnValObjects_[i]).set(record.nextInt(i));
        break;
      case BIGINT:
        ((LongWritable) columnValObjects_[i]).set(record.nextLong(i));
        break;
      case FLOAT:
        ((FloatWritable) columnValObjects_[i]).set(record.nextFloat(i));
        break;
      case DOUBLE:
        ((DoubleWritable) columnValObjects_[i]).set(record.nextDouble(i));
        break;

      case STRING:
      case VARCHAR:
      case CHAR:
        ByteArray s = record.nextByteArray(i);
        ((Text) columnValObjects_[i]).set(
            s.byteBuffer().array(), s.offset(), s.len());
        break;
      case TIMESTAMP_NANOS:
        ((TimestampNanosWritable) columnValObjects_[i]).set(
            record.nextTimestampNanos(i));
        break;
      case DECIMAL:
        ((DecimalWritable) columnValObjects_[i]).set(
            record.nextDecimal(i));
        break;
      default:
        throw new RuntimeException("Unsupported type: " + cInfo);
    }
  }
}
 
开发者ID:cloudera,项目名称:RecordServiceClient,代码行数:66,代码来源:RecordServiceRecord.java


示例13: testReadAllTypes

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Test
public void testReadAllTypes() throws IOException, InterruptedException {
  Configuration config = new Configuration();
  RecordServiceInputFormat.RecordServiceRecordReader reader =
      new RecordServiceInputFormat.RecordServiceRecordReader();

  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  format.setTimeZone(TimeZone.getTimeZone("GMT"));

  try {
    RecordServiceConfig.setInputTable(config, null, "rs.alltypes");
    List<InputSplit> splits = PlanUtil.getSplits(config, new Credentials()).splits;

    int numRows = 0;
    for (InputSplit split: splits) {
      reader.initialize(split,
          new TaskAttemptContextImpl(new JobConf(config), new TaskAttemptID()));
      while (reader.nextKeyValue()) {
        RecordServiceRecord value = reader.getCurrentValue();
        if (((BooleanWritable)value.getColumnValue(0)).get()) {
          assertEquals(0, ((ByteWritable)value.getColumnValue(1)).get());
          assertEquals(1, ((ShortWritable)value.getColumnValue(2)).get());
          assertEquals(2, ((IntWritable)value.getColumnValue(3)).get());
          assertEquals(3, ((LongWritable)value.getColumnValue(4)).get());
          assertEquals(4.0, ((FloatWritable)value.getColumnValue(5)).get(), 0.1);
          assertEquals(5.0, ((DoubleWritable)value.getColumnValue(6)).get(), 0.1);
          assertEquals("hello", value.getColumnValue(7).toString());
          assertEquals("vchar1", value.getColumnValue(8).toString());
          assertEquals("char1", value.getColumnValue(9).toString());
          assertEquals("2015-01-01", format.format(
              ((TimestampNanosWritable)value.getColumnValue(10)).get().toTimeStamp()));
          assertEquals(
              new BigDecimal("3.1415920000"),
              ((DecimalWritable)value.getColumnValue(11)).get().toBigDecimal());
        } else {
          assertEquals(6, ((ByteWritable)value.getColumnValue(1)).get());
          assertEquals(7, ((ShortWritable)value.getColumnValue(2)).get());
          assertEquals(8, ((IntWritable)value.getColumnValue(3)).get());
          assertEquals(9, ((LongWritable)value.getColumnValue(4)).get());
          assertEquals(10.0, ((FloatWritable)value.getColumnValue(5)).get(), 0.1);
          assertEquals(11.0, ((DoubleWritable)value.getColumnValue(6)).get(), 0.1);
          assertEquals("world", value.getColumnValue(7).toString());
          assertEquals("vchar2", value.getColumnValue(8).toString());
          assertEquals("char2", value.getColumnValue(9).toString());
          assertEquals("2016-01-01",
              format.format(
                  ((TimestampNanosWritable)value.getColumnValue(10))
                      .get().toTimeStamp()));
          assertEquals(
              new BigDecimal("1234.5678900000"),
              ((DecimalWritable)value.getColumnValue(11)).get().toBigDecimal());
        }
        ++numRows;
      }
    }
    assertEquals(2, numRows);
  } finally {
    reader.close();
  }
}
 
开发者ID:cloudera,项目名称:RecordServiceClient,代码行数:61,代码来源:MapReduceTest.java


示例14: extractPigObject

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
/**
 * Converts object from Hive's value system to Pig's value system
 * see HCatBaseStorer#getJavaObj() for Pig->Hive conversion 
 * @param o object from Hive value system
 * @return object in Pig value system 
 */
public static Object extractPigObject(
    Object o, com.cloudera.recordservice.core.Schema.TypeDesc itemType)
    throws Exception {
  // Note that HCatRecordSerDe.serializePrimitiveField() will be called before this,
  // thus some type promotion/conversion may occur: e.g. Short to Integer. We should
  // refactor this so that it's hapenning in one place per module/product that we are
  // integrating with. All Pig conversion should be done here, etc.
  if(o == null) {
    return null;
  }
  Object result;
  switch (itemType.typeId) {
    case BOOLEAN:
      result = ((BooleanWritable) o).get();
      break;
    case TINYINT:
      result = ((ByteWritable) o).get();
      break;
    case SMALLINT:
      result = (int) ((ShortWritable) o).get();
      break;
    case INT:
      result = ((IntWritable) o).get();
      break;
    case BIGINT:
      result = ((LongWritable)o).get();
      break;
    case FLOAT:
      result = ((FloatWritable) o).get();
      break;
    case DOUBLE:
      result =  ((DoubleWritable) o).get();
      break;
    case STRING:
    case VARCHAR:
    case CHAR:
      result = o.toString();
      break;
    case TIMESTAMP_NANOS:
      TimestampNanos timestampNanos = ((TimestampNanosWritable) o).get();
      // TODO: make sure this is correct
      result = new DateTime(timestampNanos.toTimeStamp(),
          DateTimeZone.forTimeZone(TimeZone.getTimeZone("GMT")));
      break;
    case DECIMAL:
      Decimal decimal = ((DecimalWritable) o).get();
      result = decimal.toBigDecimal();
      break;
  default:
    result = o;
    break;
  }
  return result;
}
 
开发者ID:cloudera,项目名称:RecordServiceClient,代码行数:61,代码来源:PigHCatUtil.java


示例15: ShortArrayWritable

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
public ShortArrayWritable() {
	super(ShortWritable.class);
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:4,代码来源:ShortArrayWritable.java


示例16: map

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
public void map(LongWritable inKey, Text inValue, Context context)
		throws IOException, InterruptedException {

	// This task gets a line from links-simple-sorted.txt that contains the
	// out links of a page v. It produces results with keys (i, j)
	// corresponding to the indexes of the block M_{i,j} in which each
	// link v -> w should be stored. The value is (v, w, degree(v)).

	Configuration conf = context.getConfiguration();
	short blockSize = Short.parseShort(conf.get("pagerank.block_size"));

	String[] lineParts = inValue.toString().split(":\\s+");
	String[] vOutlinks = lineParts[1].split("\\s+");

	ShortWritable[] blockIndexes = new ShortWritable[2];
	blockIndexes[0] = new ShortWritable();
	blockIndexes[1] = new ShortWritable();

	ShortWritable[] blockEntry = new ShortWritable[3];
	blockEntry[0] = new ShortWritable();
	blockEntry[1] = new ShortWritable();
	blockEntry[2] = new ShortWritable();

	int v, w;
	short i, j;

	v = Integer.parseInt(lineParts[0]);
	j = (short) ((v - 1) / blockSize + 1);

	for (int k = 0; k < vOutlinks.length; k++) {
		w = Integer.parseInt(vOutlinks[k]);
		i = (short) ((w - 1) / blockSize + 1);

		// Indexes of the block M_{i,j}.
		blockIndexes[0].set(i);
		blockIndexes[1].set(j);
		// One entry of the block M_{i,j} corresponding to the v -> w link.
		// The sparse block representation also needs information about
		// the degree of the vector v.
		blockEntry[0].set((short) ((v - 1) % blockSize));
		blockEntry[1].set((short) ((w - 1) % blockSize));
		blockEntry[2].set((short) vOutlinks.length);

		context.write(new ShortArrayWritable(blockIndexes),
				new ShortArrayWritable(blockEntry));
	}
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:49,代码来源:PageRankMatrixMapper.java


示例17: MatrixBlockWritable

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
public MatrixBlockWritable() {
	super(ShortWritable.class);
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:4,代码来源:MatrixBlockWritable.java


示例18: reduce

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
public void reduce(ShortArrayWritable inKey,
		Iterable<ShortArrayWritable> inValues, Context context)
		throws IOException, InterruptedException {

	// This task receives all the entries in M_{i,j} and builds the compact
	// representation of the block. See Section 5.2.4 of Mining of Massive
	// Datasets (http://infolab.stanford.edu/~ullman/mmds.html) for details.
	// Only blocks with at least one nonzero entry are generated.

	Configuration conf = context.getConfiguration();
	short blockSize = Short.parseShort(conf.get("pagerank.block_size"));

	short vIndexInBlock, wIndexInBlock, vDegree;
	List<List<Short>> blockColumns = new ArrayList<List<Short>>(blockSize);
	for (int k = 0; k < blockSize; k++) {
		blockColumns.add(new ArrayList<Short>());
	}

	for (ShortArrayWritable inValue : inValues) {
		Writable[] blockEntry = inValue.get();
		vIndexInBlock = ((ShortWritable) blockEntry[0]).get();
		wIndexInBlock = ((ShortWritable) blockEntry[1]).get();
		vDegree = ((ShortWritable) blockEntry[2]).get();

		if (blockColumns.get(vIndexInBlock).isEmpty()) {
			blockColumns.get(vIndexInBlock).add(vDegree);
		}
		blockColumns.get(vIndexInBlock).add(wIndexInBlock);
	}

	ShortWritable[][] blockColumnWritables = new ShortWritable[blockColumns.size()][];
	for (int k = 0; k < blockColumns.size(); k++) {
		List<Short> column = blockColumns.get(k);
		blockColumnWritables[k] = new ShortWritable[column.size()];
		for (int l = 0; l < column.size(); l++) {
			blockColumnWritables[k][l] = new ShortWritable();
			blockColumnWritables[k][l].set(column.get(l).shortValue());
		}
	}

	context.write(inKey, new MatrixBlockWritable(blockColumnWritables));
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:44,代码来源:PageRankMatrixReducer.java


示例19: map

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
@Override
public void map(ShortArrayWritable inKey, MatrixBlockWritable inValue,
		Context context) throws IOException, InterruptedException {

	// This task gets each block M_{i,j}, loads the corresponding stripe j
	// of the vector v_{k-1} and produces the partial result of the stripe i
	// of the vector v_k.

	Configuration conf = context.getConfiguration();
	int iter = Integer.parseInt(conf.get("pagerank.iteration"));
	int numPages = Integer.parseInt(conf.get("pagerank.num_pages"));
	short blockSize = Short.parseShort(conf.get("pagerank.block_size"));

	Writable[] blockIndexes = inKey.get();
	short i = ((ShortWritable) blockIndexes[0]).get();
	short j = ((ShortWritable) blockIndexes[1]).get();

	int vjSize = (j > numPages / blockSize) ? (numPages % blockSize) : blockSize;
	FloatWritable[] vj = new FloatWritable[vjSize];

	if (iter == 1) {
		// Initial PageRank vector with 1/n for all pages.
		for (int k = 0; k < vj.length; k++) {
			vj[k] = new FloatWritable(1.0f / numPages);
		}
	} else {
		// Load the stripe j of the vector v_{k-1} from the MapFiles.
		Path outputDir = MapFileOutputFormat.getOutputPath(context).getParent();
		Path vjDir = new Path(outputDir, "v" + (iter - 1));
		MapFile.Reader[] readers = MapFileOutputFormat.getReaders(vjDir, conf);
		Partitioner<ShortWritable, FloatArrayWritable> partitioner =
				new HashPartitioner<ShortWritable, FloatArrayWritable>();
		ShortWritable key = new ShortWritable(j);
		FloatArrayWritable value = new FloatArrayWritable();
		MapFileOutputFormat.getEntry(readers, partitioner, key, value);
		Writable[] writables = value.get();
		for (int k = 0; k < vj.length; k++) {
			vj[k] = (FloatWritable) writables[k];
		}
		for (MapFile.Reader reader : readers) {
			reader.close();
		}
	}

	// Initialize the partial result i of the vector v_k.
	int viSize = (i > numPages / blockSize) ? (numPages % blockSize) : blockSize;
	FloatWritable[] vi = new FloatWritable[viSize];
	for (int k = 0; k < vi.length; k++) {
		vi[k] = new FloatWritable(0);
	}

	// Multiply M_{i,j} by the stripe j of the vector v_{k-1} to obtain the
	// partial result i of the vector v_k.
	Writable[][] blockColumns = inValue.get();
	for (int k = 0; k < blockColumns.length; k++) {
		Writable[] blockColumn = blockColumns[k];
		if (blockColumn.length > 0) {
			int vDegree = ((ShortWritable) blockColumn[0]).get();
			for (int columnIndex = 1; columnIndex < blockColumn.length; columnIndex++) {
				int l = ((ShortWritable) blockColumn[columnIndex]).get();
				vi[l].set(vi[l].get() +  (1.0f / vDegree) * vj[k].get());
			}
		}
	}

	context.write(new ShortWritable(i), new FloatArrayWritable(vi));
}
 
开发者ID:yasserglez,项目名称:pagerank-hadoop,代码行数:68,代码来源:PageRankIterationMapper.java


示例20: setupMapper

import org.apache.hadoop.io.ShortWritable; //导入依赖的package包/类
private void setupMapper() throws IOException {

        String tableName = job.getConfiguration().get(BatchConstants.TABLE_NAME);
        String[] dbTableNames = HadoopUtil.parseHiveTableName(tableName);

        log.info("setting hcat input format, db name {} , table name {}", dbTableNames[0],dbTableNames[1]);

        HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);

        job.setInputFormatClass(HCatInputFormat.class);

        job.setMapperClass(IIDistinctColumnsMapper.class);
        job.setCombinerClass(IIDistinctColumnsCombiner.class);
        job.setMapOutputKeyClass(ShortWritable.class);
        job.setMapOutputValueClass(Text.class);
    }
 
开发者ID:KylinOLAP,项目名称:Kylin,代码行数:17,代码来源:IIDistinctColumnsJob.java



注:本文中的org.apache.hadoop.io.ShortWritable类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java RemoteConfig类代码示例发布时间:2022-05-21
下一篇:
Java MockLowLevelHttpResponse类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap