Revision 57974
Added by Sandro La Bruzzo over 4 years ago
modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/dli/PrepareScholixDataReducer.java | ||
---|---|---|
14 | 14 |
import eu.dnetlib.data.mapreduce.hbase.dli.kv.DliKey; |
15 | 15 |
import eu.dnetlib.data.proto.dli.ScholixObjectProtos; |
16 | 16 |
import eu.dnetlib.data.proto.dli.Scholix2ObjectProtos; |
17 |
import eu.dnetlib.data.transform.xml.AbstractDNetXsltFunctions; |
|
17 | 18 |
import eu.dnetlib.dli.proto.ScholixVersion; |
18 | 19 |
import org.apache.commons.logging.Log; |
19 | 20 |
import org.apache.commons.logging.LogFactory; |
... | ... | |
65 | 66 |
final ScholixObjectProtos.Scholix.Builder rel = parsev1(key, t); |
66 | 67 |
if (rel.hasTarget()) { |
67 | 68 |
rel.setSource(source.getSource()); |
69 |
rel.setIdentifier(generateScholixIdentifier(rel)); |
|
68 | 70 |
emit(context, JsonFormat.printToString(rel.build())); |
69 | 71 |
} else { |
70 | 72 |
context.getCounter("scholix", "missing target").increment(1); |
... | ... | |
134 | 136 |
} |
135 | 137 |
} |
136 | 138 |
|
139 |
private String generateScholixIdentifier(ScholixObjectProtos.Scholix.Builder scholix) { |
|
140 |
final String relname = scholix.getRelationship().getName(); |
|
141 |
final String sourceId = scholix.getSource().getDnetIdentifier(); |
|
142 |
final String targetId = scholix.getTarget().getDnetIdentifier(); |
|
143 |
return AbstractDNetXsltFunctions.md5(String.format("%s::%s::%s",sourceId,relname,targetId)); |
|
144 |
} |
|
137 | 145 |
|
146 |
|
|
138 | 147 |
private Scholix2ObjectProtos.Scholix.Builder parsev2(DliKey key, final ImmutableBytesWritable value) { |
139 | 148 |
try { |
140 | 149 |
return Scholix2ObjectProtos.Scholix.newBuilder(Scholix2ObjectProtos.Scholix.parseFrom(value.copyBytes())); |
Also available in: Unified diff
added identifier to the scholix object