From 62ff84333468db2137c182ad9a1bb0bf1acae6b3 Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Tue, 8 Oct 2024 16:22:54 +0200 Subject: [PATCH] adopting dhp-schemas:8.0.1 to support Auhtor's rawAffiliationString(s). Improved graph2hive implementation --- .../usagestats/SparkAtomicActionUsageJob.java | 2 +- .../DataciteToOAFTransformation.scala | 3 +-- .../dnetlib/doiboost/mag/MagDataModel.scala | 4 ++-- .../graph/hive/GraphHiveTableImporterJob.java | 15 +++++++-------- .../dhp/oa/graph/raw/OdfToOafMapper.java | 2 +- .../oa/graph/GraphHiveImporterJobTest.java | 12 ++++-------- .../dnetlib/dhp/oa/graph/raw/MappersTest.java | 10 +++++----- .../graph/sample/dataset/dataset_10.json.gz | Bin 6736 -> 6744 bytes .../otherresearchproduct_10.json.gz | Bin 8073 -> 8086 bytes .../oa/graph/sample/person/person_10.json.gz | Bin 1233 -> 1235 bytes .../sample/publication/publication_10.json.gz | Bin 5143 -> 5155 bytes .../graph/sample/software/software_10.json.gz | Bin 6410 -> 6421 bytes pom.xml | 2 +- 13 files changed, 22 insertions(+), 28 deletions(-) diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/usagestats/SparkAtomicActionUsageJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/usagestats/SparkAtomicActionUsageJob.java index 1d5b35cff1..8971537626 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/usagestats/SparkAtomicActionUsageJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/usagestats/SparkAtomicActionUsageJob.java @@ -112,7 +112,7 @@ public class SparkAtomicActionUsageJob implements Serializable { .joinWith(datasource, resultModel.col("datasourceId").equalTo(datasource.col("id")), "left") .map((MapFunction, UsageStatsResultModel>) t2 -> { UsageStatsResultModel usrm = t2._1(); - if(Optional.ofNullable(t2._2()).isPresent()) + if (Optional.ofNullable(t2._2()).isPresent()) usrm.setDatasourceId(usrm.getDatasourceId() + "||" + t2._2().getOfficialname().getValue()); else usrm.setDatasourceId(usrm.getDatasourceId() + "||NO_MATCH_FOUND"); diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala index 7603715b96..9f448d48bc 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/datacite/DataciteToOAFTransformation.scala @@ -407,10 +407,9 @@ object DataciteToOAFTransformation { ) } if (c.affiliation.isDefined) - a.setAffiliation( + a.setRawAffiliationString( c.affiliation.get .filter(af => af.nonEmpty) - .map(af => OafMapperUtils.field(af, dataInfo)) .asJava ) a.setRank(idx + 1) diff --git a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/mag/MagDataModel.scala b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/mag/MagDataModel.scala index 185381f8f7..ba3c92794e 100644 --- a/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/mag/MagDataModel.scala +++ b/dhp-workflows/dhp-doiboost/src/main/scala/eu/dnetlib/doiboost/mag/MagDataModel.scala @@ -313,7 +313,7 @@ case object ConversionUtil { if (f.author.DisplayName.isDefined) a.setFullname(f.author.DisplayName.get) if (f.affiliation != null) - a.setAffiliation(List(asField(f.affiliation)).asJava) + a.setRawAffiliationString(List(f.affiliation).asJava) a.setPid( List( createSP( @@ -386,7 +386,7 @@ case object ConversionUtil { a.setFullname(f.author.DisplayName.get) if (f.affiliation != null) - a.setAffiliation(List(asField(f.affiliation)).asJava) + a.setRawAffiliationString(List(f.affiliation).asJava) a.setPid( List( diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/hive/GraphHiveTableImporterJob.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/hive/GraphHiveTableImporterJob.java index 76e1d57a14..73243dbc5f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/hive/GraphHiveTableImporterJob.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/hive/GraphHiveTableImporterJob.java @@ -9,10 +9,7 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; +import org.apache.spark.sql.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,8 +22,6 @@ public class GraphHiveTableImporterJob { private static final Logger log = LoggerFactory.getLogger(GraphHiveTableImporterJob.class); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - public static void main(String[] args) throws Exception { final ArgumentApplicationParser parser = new ArgumentApplicationParser( @@ -74,7 +69,12 @@ public class GraphHiveTableImporterJob { private static void loadGraphTable(SparkSession spark, String inputPath, String hiveDbName, Class clazz, int numPartitions) { - Dataset dataset = spark.read().textFile(inputPath); + final Encoder clazzEncoder = Encoders.bean(clazz); + + Dataset dataset = spark + .read() + .schema(clazzEncoder.schema()) + .json(inputPath); if (numPartitions > 0) { log.info("repartitioning {} to {} partitions", clazz.getSimpleName(), numPartitions); @@ -82,7 +82,6 @@ public class GraphHiveTableImporterJob { } dataset - .map((MapFunction) s -> OBJECT_MAPPER.readValue(s, clazz), Encoders.bean(clazz)) .write() .mode(SaveMode.Overwrite) .saveAsTable(tableIdentifier(hiveDbName, clazz)); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java index 41fc37cb13..ad61304a08 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/raw/OdfToOafMapper.java @@ -94,7 +94,7 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper { author.setFullname(String.format("%s, %s", author.getSurname(), author.getName())); } - author.setAffiliation(prepareListFields(n, "./*[local-name()='affiliation']", info)); + author.setRawAffiliationString(prepareListString(n, "./*[local-name()='affiliation']")); author.setPid(preparePids(n, info)); author.setRank(pos++); res.add(author); diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/GraphHiveImporterJobTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/GraphHiveImporterJobTest.java index afaac04ea2..e059cbc869 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/GraphHiveImporterJobTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/GraphHiveImporterJobTest.java @@ -73,14 +73,10 @@ public class GraphHiveImporterJobTest { GraphHiveImporterJob .main( new String[] { - "-isSparkSessionManaged", - Boolean.FALSE.toString(), - "-inputPath", - getClass().getResource("/eu/dnetlib/dhp/oa/graph/sample").getPath(), - "-hiveMetastoreUris", - "", - "-hiveDbName", - dbName + "--isSparkSessionManaged", Boolean.FALSE.toString(), + "--inputPath", getClass().getResource("/eu/dnetlib/dhp/oa/graph/sample").getPath(), + "--hiveMetastoreUris", "", + "--hiveDbName", dbName }); ModelSupport.oafTypes diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java index 228c6308ca..2cf3ea0c09 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MappersTest.java @@ -406,15 +406,15 @@ class MappersTest { assertEquals("Baracchini", author.get().getSurname()); assertEquals("Theo", author.get().getName()); - assertEquals(1, author.get().getAffiliation().size()); - final Optional> opAff = author + assertEquals(1, author.get().getRawAffiliationString().size()); + final Optional opAff = author .get() - .getAffiliation() + .getRawAffiliationString() .stream() .findFirst(); assertTrue(opAff.isPresent()); - final Field affiliation = opAff.get(); - assertEquals("ISTI-CNR", affiliation.getValue()); + final String affiliation = opAff.get(); + assertEquals("ISTI-CNR", affiliation); assertFalse(d.getSubject().isEmpty()); assertFalse(d.getInstance().isEmpty()); diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/dataset/dataset_10.json.gz b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/dataset/dataset_10.json.gz index 0da3c4071ab705e39e22e33967e39de56f788855..e112002d698a006ee75cfa83e72253d58e8db456 100644 GIT binary patch literal 6744 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 up^}3YxLI6wc!n%b0#}B3Lo6+dk24=esiYiPw~R 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 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/otherresearchproduct/otherresearchproduct_10.json.gz b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/otherresearchproduct/otherresearchproduct_10.json.gz index 20b6a4dba3f02516796283f817134026a083e7a3..b32268d6aea1d4dcf83691483c04d7531f234831 100644 GIT binary patch delta 7788 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 delta 7760 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 literal 1233 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 R{vvSq{{Tx(6id47000V^{i6T? literal 5143 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 F002Dh3zYx> diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/software/software_10.json.gz b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/sample/software/software_10.json.gz index a5b8c8774c5650641feb3a3c257b4bc182777b38..e59ae640208b554b8899c8c55d6766a27402ed7d 100644 GIT binary patch literal 6421 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 literal 6410 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 Yp=JGEPkZh>5x>{}19s*i?oIsw0IUmUV*mgE diff --git a/pom.xml b/pom.xml index 666ba2350c..e1d99f25b5 100644 --- a/pom.xml +++ b/pom.xml @@ -937,7 +937,7 @@ 1.1.3 1.7 1.0.7 - [7.0.1] + [8.0.1] cdh5.9.2 3.5 11.0.2