当前位置: 首页>>代码示例>>Java>>正文


Java SinkCall.getContext方法代码示例

本文整理汇总了Java中cascading.scheme.SinkCall.getContext方法的典型用法代码示例。如果您正苦于以下问题:Java SinkCall.getContext方法的具体用法?Java SinkCall.getContext怎么用?Java SinkCall.getContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cascading.scheme.SinkCall的用法示例。


在下文中一共展示了SinkCall.getContext方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: write

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public Result write(SinkCall<Object[], ?> sinkCall, Generator generator) {
    Tuple tuple = CascadingUtils.coerceToString(sinkCall);
    // consider names (in case of aliases these are already applied)
    List<String> names = (List<String>) sinkCall.getContext()[0];

    generator.writeBeginObject();
    for (int i = 0; i < tuple.size(); i++) {
        String name = (i < names.size() ? names.get(i) : "tuple" + i);
        // filter out fields
        if (shouldKeep(generator.getParentPath(), name)) {
            generator.writeFieldName(name);
            Object object = tuple.getObject(i);
            Result result = jdkWriter.write(object, generator);
            if (!result.isSuccesful()) {
                if (object instanceof Writable) {
                    return writableWriter.write((Writable) object, generator);
                }
                return Result.FAILED(object);
            }
        }
    }
    generator.writeEndObject();
    return Result.SUCCESFUL();
}
 
开发者ID:xushjie1987,项目名称:es-hadoop-v2.2.0,代码行数:27,代码来源:CascadingValueWriter.java

示例2: sinkPrepare

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@Override
public void sinkPrepare(final FlowProcess<JobConf> flowProcess, final SinkCall<Object[], OutputCollector> sinkCall) throws IOException {
    final StringWriter stringWriter = new StringWriter(4 * 1024);
    final CSVWriter csvWriter = createCsvWriter(stringWriter);
    sinkCall.setContext(new Object[5]);
    sinkCall.getContext()[0] = new Text();
    sinkCall.getContext()[1] = stringWriter;
    sinkCall.getContext()[2] = Charset.forName(charsetName);
    sinkCall.getContext()[3] = csvWriter;
    sinkCall.getContext()[4] = new String[getSinkFields().size()];

    if (hasHeader) {
        final Fields fields = sinkCall.getOutgoingEntry().getFields();
        write(sinkCall, fields);
    }
}
 
开发者ID:tresata,项目名称:cascading-opencsv,代码行数:17,代码来源:OpenCsvScheme.java

示例3: write

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
protected void write(final SinkCall<Object[], OutputCollector> sinkCall, final Iterable<? extends Object> value) throws IOException {
    final Text text = (Text) sinkCall.getContext()[0];
    final StringWriter stringWriter = (StringWriter) sinkCall.getContext()[1];
    final Charset charset = (Charset) sinkCall.getContext()[2];
    final CSVWriter csvWriter = (CSVWriter) sinkCall.getContext()[3];
    final String[] nextLine = (String[]) sinkCall.getContext()[4];
    stringWriter.getBuffer().setLength(0);
    int i = 0;
    for (Object item: value) {
        nextLine[i] = item == null ? "" : item.toString();
        i++;
    }
    csvWriter.writeNext(nextLine);
    final int l = stringWriter.getBuffer().length();
    stringWriter.getBuffer().setLength(l > 0 ? l - 1 : 0);
    text.set(stringWriter.getBuffer().toString().getBytes(charset));
    sinkCall.getOutput().collect(null, text);
}
 
开发者ID:tresata,项目名称:cascading-opencsv,代码行数:20,代码来源:OpenCsvScheme.java

示例4: write

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public Result write(SinkCall<Object[], ?> sinkCall, Generator generator) {
    Tuple tuple = CascadingUtils.coerceToString(sinkCall);
    // consider names (in case of aliases these are already applied)
    List<String> names = (List<String>) sinkCall.getContext()[SINK_CTX_ALIASES];

    generator.writeBeginObject();
    for (int i = 0; i < tuple.size(); i++) {
        String name = (i < names.size() ? names.get(i) : "tuple" + i);
        // filter out fields
        if (shouldKeep(generator.getParentPath(), name)) {
            generator.writeFieldName(name);
            Object object = tuple.getObject(i);
            Result result = jdkWriter.write(object, generator);
            if (!result.isSuccesful()) {
                if (object instanceof Writable) {
                    return writableWriter.write((Writable) object, generator);
                }
                return Result.FAILED(object);
            }
        }
    }
    generator.writeEndObject();
    return Result.SUCCESFUL();
}
 
开发者ID:elastic,项目名称:elasticsearch-hadoop,代码行数:27,代码来源:CascadingValueWriter.java

示例5: sinkPrepare

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@Override
public void sinkPrepare(FlowProcess<JobConf> flowProcess, SinkCall<Object[], OutputCollector> sinkCall) throws IOException {
  initIndices();
  sinkCall.setContext(new Object[2]);
  sinkCall.getContext()[0] = new LongWritable();
  sinkCall.getContext()[1] = new ListWritable<>(Text.class);
}
 
开发者ID:datascienceinc,项目名称:cascading.csv,代码行数:8,代码来源:CsvScheme.java

示例6: sink

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public void sink(FlowProcess<JobConf> flowProcess, SinkCall<Object[], OutputCollector> sinkCall) throws IOException {
  ListWritable<Text> record = (ListWritable<Text>) sinkCall.getContext()[1];
  record.clear();

  TupleEntry entry = sinkCall.getOutgoingEntry();
  Tuple tuple = entry.getTuple();

  Fields fields = getSinkFields();
  for (int i = 0; i < fields.size(); i++) {
    int index = indices != null ? indices.get(fields.get(i).toString()) : i;
    if (record.size() < index) {
      for (int j = record.size(); j < index; j++) {
        record.add(null);
      }
    }

    Object value = tuple.getObject(i);
    if (value != null) {
      record.add(index, new Text(value.toString()));
    } else {
      record.add(index, null);
    }
  }

  sinkCall.getOutput().collect(null, record);
}
 
开发者ID:datascienceinc,项目名称:cascading.csv,代码行数:29,代码来源:CsvScheme.java

示例7: sink

import cascading.scheme.SinkCall; //导入方法依赖的package包/类
/**
 * Copies the values from the outgoing {@link TupleEntry} to the {@link Corc}.
 */
@SuppressWarnings("unchecked")
@Override
public void sink(FlowProcess<? extends Configuration> flowProcess, SinkCall<Corc, OutputCollector> sinkCall)
    throws IOException {
  Corc corc = sinkCall.getContext();
  TupleEntry tupleEntry = sinkCall.getOutgoingEntry();
  for (Comparable<?> fieldName : tupleEntry.getFields()) {
    corc.set(fieldName.toString(), tupleEntry.getObject(fieldName));
  }
  sinkCall.getOutput().collect(null, corc);
}
 
开发者ID:HotelsDotCom,项目名称:corc,代码行数:15,代码来源:OrcFile.java


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