本文整理汇总了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();
}
示例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);
}
}
示例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);
}
示例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();
}
示例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);
}
示例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);
}
示例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);
}