@@ -464,11 +464,7 @@ object FactorGenerationStage extends DatagenStage with Logging {
464
464
// -- interactive --
465
465
// first names
466
466
" personFirstNames" -> Factor (PersonType ) { case Seq (person) =>
467
- frequency(
468
- person,
469
- value = $" id" ,
470
- by = Seq ($" firstName" )
471
- )
467
+ frequency(person, value = $" id" , by = Seq ($" firstName" ))
472
468
},
473
469
// friends
474
470
" personNumFriendsOfFriends" -> Factor (PersonKnowsPersonType , PersonType ) { case Seq (personKnowsPerson, person1) =>
@@ -479,38 +475,38 @@ object FactorGenerationStage extends DatagenStage with Logging {
479
475
val personNumFriends = frequency(knows1, value = $" knows.Person2Id" , by = Seq ($" Person1.id" ), agg = count)
480
476
.select($" Person1.id" .as(" Person1Id" ), $" frequency" )
481
477
482
- val knows2 = person1
478
+ val personFriendsOfFriends = person1
483
479
.as(" Person1" )
484
480
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" Person1.id" === $" knows.Person1Id" , " leftouter" )
485
481
.join(personNumFriends.as(" personNumFriends" ), $" personNumFriends.Person1Id" === $" knows.Person2Id" , " leftouter" )
486
482
487
- frequency(knows2, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
483
+ val personNumFriendsOfFriends = frequency(personFriendsOfFriends, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
484
+ personNumFriendsOfFriends
488
485
},
489
486
// posts
490
487
" personNumPosts" -> Factor (PersonType , PostType ) { case Seq (person, post) =>
491
488
val posts = person
492
489
.as(" Person" )
493
490
.join(post.as(" post" ), $" post.CreatorPersonId" === $" Person.id" , " leftouter" )
494
- frequency(posts, value = $" post.id" , by = Seq ($" Person.id" ))
491
+
492
+ val numPosts = frequency(posts, value = $" post.id" , by = Seq ($" Person.id" ))
493
+ numPosts
495
494
},
496
495
" personNumFriendPosts" -> Factor (PersonType , PersonKnowsPersonType , PostType ) { case Seq (person, personKnowsPerson, post) =>
497
496
val personPosts = person
498
497
.as(" Person" )
499
498
.join(post.as(" Post" ), $" Post.CreatorPersonId" === $" Person.id" , " leftouter" )
499
+
500
500
val numPersonPosts = frequency(personPosts, value = $" Post.id" , by = Seq ($" Person.id" ), agg = count)
501
501
.select($" Person.id" .as(" Person1Id" ), $" frequency" )
502
+
502
503
val friendPosts = numPersonPosts.as(" numPersonPosts" )
503
504
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" numPersonPosts.Person1Id" === $" knows.Person2Id" , " leftouter" )
504
- frequency(friendPosts, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
505
+
506
+ val numFriendPosts = frequency(friendPosts, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
507
+ numFriendPosts
505
508
},
506
509
" personNumFriendOfFriendPosts" -> Factor (PersonType , PersonKnowsPersonType , PostType ) { case Seq (person, personKnowsPerson, post) =>
507
- val posts = person
508
- .as(" Person" )
509
- .join(undirectedKnows(personKnowsPerson).as(" knows1" ), $" Person.id" === $" knows1.Person1Id" , " leftouter" )
510
- .join(undirectedKnows(personKnowsPerson).as(" knows2" ), $" knows1.Person2Id" === $" knows2.Person1Id" , " leftouter" )
511
- .join(post.as(" post" ), $" post.CreatorPersonId" === $" knows2.Person2Id" , " leftouter" )
512
- frequency(posts, value = $" post.id" , by = Seq ($" Person.id" ))
513
-
514
510
val personPosts = person
515
511
.as(" Person" )
516
512
.join(post.as(" Post" ), $" Post.CreatorPersonId" === $" Person.id" , " leftouter" )
@@ -527,35 +523,43 @@ object FactorGenerationStage extends DatagenStage with Logging {
527
523
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" numFriendPosts.Person1Id" === $" knows.Person2Id" , " leftouter" )
528
524
529
525
val numFriendOfFriendPosts = frequency(friendOfFriendPosts, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
530
-
531
526
numFriendOfFriendPosts
532
527
},
533
528
// comments
534
529
" personNumComments" -> Factor (PersonType , PostType ) { case Seq (person, comment) =>
535
530
val comments = person
536
531
.as(" Person" )
537
532
.join(comment.as(" comment" ), $" comment.CreatorPersonId" === $" Person.id" , " leftouter" )
538
- frequency(comments, value = $" comment.id" , by = Seq ($" Person.id" ))
533
+
534
+ val numComments = frequency(comments, value = $" comment.id" , by = Seq ($" Person.id" ))
535
+ numComments
539
536
},
540
537
" personNumFriendComments" -> Factor (PersonType , PersonKnowsPersonType , CommentType ) { case Seq (person, personKnowsPerson, comment) =>
541
538
val personComments = person
542
539
.as(" Person" )
543
540
.join(comment.as(" Comment" ), $" Comment.CreatorPersonId" === $" Person.id" , " leftouter" )
541
+
544
542
val numPersonComments = frequency(personComments, value = $" Comment.id" , by = Seq ($" Person.id" ), agg = count)
545
543
.select($" Person.id" .as(" Person1Id" ), $" frequency" )
544
+
546
545
val friendComments = numPersonComments.as(" numPersonComments" )
547
546
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" numPersonComments.Person1Id" === $" knows.Person2Id" , " leftouter" )
548
- frequency(friendComments, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
547
+
548
+ val numFriendComments = frequency(friendComments, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
549
+ numFriendComments
549
550
},
550
551
// likes
551
552
" personLikesNumMessages" -> Factor (PersonType , PersonLikesCommentType , PersonLikesPostType ) { case Seq (person, personLikesComment, personLikesPost) =>
552
553
val personLikesMessage =
553
554
personLikesComment.select($" PersonId" , $" CommentId" .as(" MessageId" )) |+|
554
555
personLikesPost.select($" PersonId" , $" PostId" .as(" MessageId" ))
556
+
555
557
val messages = person
556
558
.as(" Person" )
557
559
.join(personLikesMessage.as(" personLikesMessage" ), $" personLikesMessage.PersonId" === $" Person.id" , " leftouter" )
558
- frequency(messages, value = $" personLikesMessage.MessageId" , by = Seq ($" Person.id" ))
560
+
561
+ val personLikesNumMessages = frequency(messages, value = $" personLikesMessage.MessageId" , by = Seq ($" Person.id" ))
562
+ personLikesNumMessages
559
563
},
560
564
// tags
561
565
" personNumTags" -> Factor (PersonHasInterestTagType ) { case Seq (interest) =>
@@ -564,9 +568,12 @@ object FactorGenerationStage extends DatagenStage with Logging {
564
568
" personNumFriendTags" -> Factor (PersonHasInterestTagType , PersonKnowsPersonType ) { case Seq (interest, personKnowsPerson) =>
565
569
val personNumTags = frequency(interest, value = $" TagId" , by = Seq ($" PersonId" ), agg = count)
566
570
.select($" personId" .as(" Person1Id" ), $" frequency" )
571
+
567
572
val friendTags = personNumTags.as(" personNumTags" )
568
573
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" personNumTags.Person1Id" === $" knows.Person2Id" , " leftouter" )
569
- frequency(friendTags, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
574
+
575
+ val numFriendTags = frequency(friendTags, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
576
+ numFriendTags
570
577
},
571
578
// forums
572
579
" personNumForums" -> Factor (ForumHasMemberType ) { case Seq (hasMember) =>
@@ -580,7 +587,6 @@ object FactorGenerationStage extends DatagenStage with Logging {
580
587
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" personNumForums.Person1Id" === $" knows.Person2Id" , " leftouter" )
581
588
582
589
val numFriendForums = frequency(friendForums, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
583
-
584
590
numFriendForums
585
591
},
586
592
" personNumFriendOfFriendForums" -> Factor (ForumHasMemberType , PersonKnowsPersonType ) { case Seq (hasMember, personKnowsPerson) =>
@@ -596,7 +602,6 @@ object FactorGenerationStage extends DatagenStage with Logging {
596
602
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" numFriendForums.Person1Id" === $" knows.Person2Id" , " leftouter" )
597
603
598
604
val numFriendOfFriendForums = frequency(friendOfFriendForums, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
599
-
600
605
numFriendOfFriendForums
601
606
},
602
607
// companies
@@ -611,7 +616,6 @@ object FactorGenerationStage extends DatagenStage with Logging {
611
616
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" personNumCompanies.Person1Id" === $" knows.Person2Id" , " leftouter" )
612
617
613
618
val numFriendCompanies = frequency(friendCompanies, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
614
-
615
619
numFriendCompanies
616
620
},
617
621
" personNumFriendOfFriendCompanies" -> Factor (PersonWorkAtCompanyType , PersonKnowsPersonType ) { case Seq (workAt, personKnowsPerson) =>
@@ -627,7 +631,6 @@ object FactorGenerationStage extends DatagenStage with Logging {
627
631
.join(undirectedKnows(personKnowsPerson).as(" knows" ), $" numFriendCompanies.Person1Id" === $" knows.Person2Id" , " leftouter" )
628
632
629
633
val numFriendOfFriendCompanies = frequency(friendOfFriendCompanies, value = $" frequency" , by = Seq ($" knows.Person1Id" ), agg = sum)
630
-
631
634
numFriendOfFriendCompanies
632
635
},
633
636
)
0 commit comments