Skip to content

Commit 6a3fdfd

Browse files
committed
FactorGen: Merge Tag-related tables to personNumFriendTags
1 parent 3e09b09 commit 6a3fdfd

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/main/scala/ldbc/snb/datagen/factors/FactorGenerationStage.scala

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -562,17 +562,26 @@ object FactorGenerationStage extends DatagenStage with Logging {
562562
personLikesNumMessages
563563
},
564564
// tags
565-
"personNumTags" -> Factor(PersonHasInterestTagType) { case Seq(interest) =>
566-
frequency(interest, value = $"TagId", by = Seq($"PersonId"))
567-
},
568-
"personNumFriendTags" -> Factor(PersonHasInterestTagType, PersonKnowsPersonType) { case Seq(interest, personKnowsPerson) =>
569-
val personNumTags = frequency(interest, value = $"TagId", by = Seq($"PersonId"), agg = count)
570-
.select($"personId".as("Person1Id"), $"frequency")
565+
"personNumFriendTags" -> Factor(PersonType, PersonHasInterestTagType, PersonKnowsPersonType) { case Seq(person, interest, personKnowsPerson) =>
566+
// direct tags
567+
val personComments = person
568+
.as("Person")
569+
.join(interest.as("interest"), $"interest.PersonId" === $"Person.id", "leftouter")
571570

572-
val friendTags = personNumTags.as("personNumTags")
573-
.join(undirectedKnows(personKnowsPerson).as("knows"), $"personNumTags.Person1Id" === $"knows.Person2Id", "leftouter")
571+
val numPersonTags = frequency(personComments, value = $"TagId", by = Seq($"PersonId"), agg = count)
572+
.select($"PersonId".as("Person1Id"), $"frequency".as("numDirectTags"))
574573

575-
val numFriendTags = frequency(friendTags, value = $"frequency", by = Seq($"knows.Person1Id"), agg = sum)
574+
// tags of friends
575+
val friendTags = numPersonTags.as("numPersonTags1")
576+
.join(undirectedKnows(personKnowsPerson).as("knows"), $"numPersonTags1.Person1Id" === $"knows.Person1Id", "leftouter")
577+
.join(numPersonTags.as("numPersonTags2"), $"numPersonTags2.Person1Id" === $"knows.Person2Id", "leftouter")
578+
579+
val numFriendTags = frequency(
580+
friendTags,
581+
value = $"numPersonTags2.numDirectTags",
582+
by = Seq($"numPersonTags1.Person1Id", $"numPersonTags1.numDirectTags"),
583+
agg = sum
584+
)
576585
numFriendTags
577586
},
578587
// forums

0 commit comments

Comments
 (0)