У меня есть пример данных, как показано ниже:
UserId,ProductId,Category,Action
1,111,Electronics,Browse
2,112,Fashion,Click
3,113,Kids,AddtoCart
4,114,Food,Purchase
5,115,Books,Logout
6,114,Food,Click
7,113,Kids,AddtoCart
8,115,Books,Purchase
9,111,Electronics,Click
10,112,Fashion,Purchase
3,112,Fashion,Click
Мне нужно создать список пользователей, которые заинтересованы в категории «Мода» или «Электроника», но не в обеих категориях. Пользователь интересуется, выполнил ли он / она какое-либо из этих действий (Click / AddToCart / Buy), используя код spark / scala, который я делал до этого:
val rrd1 = sc.textFile("/user/harshit.kacker/datametica_logs.csv")
val rrd2 = rrd1.map( x=> {
| val c = x.split(",")
| (c(0).toInt , x)})
val rrd3 = rrd1.filter(x=> x.split(",")(2) == "Fashion" || x.split(",")(2) == "Electronics")
val rrd4 = rrd3.filter(x=> x.split(",")(3)== "Click" || x.split(",")(3)=="Purchase" || x.split(",")(3)=="AddtoCart")
rrd4.collect.foreach(println)
2,112,Fashion,Click
9,111,Electronics,Click
10,112,Fashion,Purchase
3,112,Fashion,Click
4,111,Electronics,Click
19,112,Fashion,Click
9,112,Fashion,Purchase
2,112,Fashion,Click
2,111,Electronics,Click
1,112,Fashion,Purchase
теперь мне нужно поработать над ", чтобы сформировать список пользователей, которые заинтересованы в категории" Мода "или в категории" Электроника ", но не в обеих категориях " этой курсивной частью и получить желаемый результат как:
10,Fashion
3,Fashion
4,Electronics
19,Fashion
1,Fashion
означает, что пользователь должен иметь Мода и электроника в качестве категории, которую следует исключить, не могли бы вы помочь достичь того же?