2016-08-11 4 views
3

spark sql을 사용하여 반복적으로 계층 적 데이터 집합을 쿼리하고 모든 중첩 된 자식의 부모 루트를 식별하려고합니다.Spark Sql을 사용하여 재귀 쿼리를 수행하는 방법

자체 조인을 사용해 보았지만 한 레벨에서만 작동합니다.

아이디어 나 지침이 있으십니까?

감사

+1

기타 당신은하지 않습니다 . [그래프 프레임] (https://github.com/graphframes/graphframes)을 살펴볼 수는 있지만 상당히 제한적입니다. – zero323

+0

@ zero323 - 조인의 문제점은 조인 깊이를 알 수있는 방법이 없다는 것입니다. 1 레벨, 2 레벨 또는 3 레벨의 깊은/인터랙션이 될 수 있습니다. –

+0

저는이 사실을 충분히 알고 있습니다 만, 이것은 당신이 어떤 방법 으로든 해결해야 할 것입니다. 실행에 대한 세밀한 제어가 필요하다면 GraphX ​​API로 떨어질 수 있지만 높은 수준의 접근 방식을 원한다면이 옵션을 선택하십시오. – zero323

답변

3

당신은 재귀 쿼리 (상위/하위 또는 계층 적 쿼리)를 수행하기 위해 Graphx 기반 솔루션을 사용할 수 있습니다. 이것은 SQL 조항

에 의해 재귀 공통 테이블 식 (CTE) 또는 연결이라는 많은 데이터베이스에서 제공하는 기능에 대한 자세한 내용은이 문서를 참조하십시오입니다 : 조인 반복의 상단에 쿼리를 구축하는 것보다 https://www.qubole.com/blog/processing-hierarchical-data-using-spark-graphx-pregel-api/

관련 문제