카테고리가 다른 동일한 제품의 제품 데이터 프레임이 있습니다. 같은 계층 구조를 기반으로 하나의 레코드 만 선택하고 싶습니다.
Product ID. Category. Status
1. Cat1. status1
1. Cat2. status1
1. Cat3. status1
2. Cat1. status1
2. Cat2. status1
3. Cat2. status1
Cat1이있는 레코드가 있으면 선택하고 그렇지 않으면 Cat2를 선택합니다. Cat2가 없으면 Cat3을 선택하십시오. 그러나 여러 개 중 하나만 선택하십시오.
Yogesh와 Lamansa의 답변을 사용하여 아래 솔루션을 개발했습니다.
val df1 = df.withColum("row_num", when($"category"==="Cat1", "A"),
.when($"category" ==== "Cat2", "B"),
.when($"category" === "Cat3", "C"))
df1.join(df1.groupBy("product_id).agg(first("category").as("category")),
Seq("product_id","category")).show
카테고리 별 주문으로 사용되는 경우 선호도가 원하는 순서로되어 있는지 확인할 수 없습니다. 예를 들어 Cat2가 첫 번째 선호 사항이 될 수 있습니다.
Output :
+----------+--------+-------+
|Product ID|Category| Status|
+----------+--------+-------+
| 1| Cat1|status1|
| 2| Cat1|status1|
| 3| Cat2|status1|
+----------+--------+-------+
출력 :
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다