Skip to content

Commit 58557f6

Browse files
committed
Factorgen: Add personNumFriendsOfFriends factor table
1 parent 080535e commit 58557f6

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ object FactorGenerationStage extends DatagenStage with Logging {
486486
frequency(person, value = $"id", by = Seq($"firstName"))
487487
},
488488
// friends
489-
"personNumFriendsOfFriends" -> Factor(PersonKnowsPersonType, PersonType) { case Seq(personKnowsPerson, person1) =>
489+
"personNumFriendsOfFriendsOfFriends" -> Factor(PersonKnowsPersonType, PersonType) { case Seq(personKnowsPerson, person1) =>
490490
// direct friends
491491
val knows1 = person1
492492
.as("Person1")
@@ -511,7 +511,21 @@ object FactorGenerationStage extends DatagenStage with Logging {
511511
agg = sum
512512
).select($"Person1Id", $"creationDate", $"deletionDate", $"numFriends", $"frequency".as("numFriendsOfFriends"))
513513

514-
personNumFriendsOfFriends
514+
// friends of friends of friends
515+
val personFriendsOfFriendsOfFriends = personNumFriendsOfFriends.as("personNumFriendsOfFriends1")
516+
.join(undirectedKnows(personKnowsPerson).as("knows"), $"personNumFriendsOfFriends1.Person1Id" === $"knows.Person1Id", "leftouter")
517+
.join(personNumFriendsOfFriends.as("personNumFriendsOfFriends2"),$"personNumFriendsOfFriends2.Person1Id" === $"knows.Person2Id", "leftouter")
518+
519+
val personNumFriendsOfFriendsOfFriends = frequency(
520+
personFriendsOfFriendsOfFriends,
521+
value = $"personNumFriendsOfFriends2.numFriendsOfFriends",
522+
by = Seq($"personNumFriendsOfFriends1.Person1Id",
523+
$"personNumFriendsOfFriends1.creationDate", $"personNumFriendsOfFriends1.deletionDate",
524+
$"personNumFriendsOfFriends1.numFriends", $"personNumFriendsOfFriends1.numFriendsOfFriends"),
525+
agg = sum
526+
).select($"Person1Id", $"creationDate", $"deletionDate", $"numFriends", $"numFriendsOfFriends", $"frequency".as("numFriendsOfFriendsOfFriends"))
527+
528+
personNumFriendsOfFriendsOfFriends
515529
},
516530
// posts
517531
"personNumFriendOfFriendPosts" -> Factor(PersonType, PersonKnowsPersonType, PostType) { case Seq(person, personKnowsPerson, post) =>

0 commit comments

Comments
 (0)