spark 1.6.1 사용. TimeEvent에를 둘 다 키 ID가 애플 리케이션 - 내가 할 때, 장치 : 두 개의 테이블 : SPARK SQL LEFT JOIN 너무 많은 행
이 이상한 상황을 가지고선택 장치를 TimeEvent에에서 - 반환 된 레코드의 수는 TimeEvent에에서 60,865
선택 distince 장치입니다 - 반환 된 레코드의 수는 애플 리케이션에서 60,865
선택 장치입니다 - 기록 : 112,071
앱에서 별개의 장치를 선택 - 기록 : 112,071
나는 실행하면
반환 된 레코드의 수는 112,073입니다앱을 선택합니다.
*
, timeevents.*
응용 프로그램에서 LEFT OUTER은 apps.device = timeevents.device
ON TimeEvent에 가입하세요 ...
내가 확인 - 출력 - 나는 같은 2 개 개의 추가 라인을 가지고 기기 ID ... 내가 뭔가 잘못하고 있니? 내가 112071 기다리고 있었다
- 애플 리케이션 테이블 단지 수 ...
편집 : 제안 시도 :
SELECT device FROM timeevents GROUP BY device HAVING COUNT(*) > 1
return 0
SELECT device FROM apps GROUP BY device HAVING COUNT(*) > 1
return 0
SELECT device FROM timeevents GROUP BY device HAVING COUNT(1) < 2
return 60865
SELECT device FROM apps GROUP BY device HAVING COUNT(1) < 2
return 112071
편집 : 내 잘못 죄송합니다 - 먼저 그것을 발견하지 않았다 timeevents 장치에서 (원래 RDD로) 문자열이었습니다. 앱에서 Long ...은 여전히 동작을 설명하지 않지만 둘 다 Long이되도록 강제 할 때 - 더 이상의 신비한 행은 없습니다. ufff ...
도움 주셔서 감사합니다!
해당 기기에는 2 개의 앱 레코드가 있어야합니다. 다른 장치에서 추가 레코드를 얻고 있기 때문에 다른 곳에서도 일어나야합니다. – VikingBlooded
나는 스파크가 최고는 아니지만 ... counte (1)> 1 인 장치로 timeevents 그룹의 장치를 선택하면 중복 된 기기 항목 – Twelfth