2017-12-14 2 views
-1

JavaRDD에 몇 가지 json 문서가 있습니다. JavaRDD를 ArrayList의 목록에 기반하여 필터링하고 싶습니다. 기본적으로 JavaRDD에있는 모든 문서를 가져 오려고합니다. ArrayList에있는 ID. 나는이 json이 RDD의 각 행에 저장된 무엇 인과 쉽게 데이터 집합에 있지만 JavaRDD 높은 수준의 코드 조각의JavaRDD를 사용하여 목록을 사용하여 JavaRDD를 필터링하는 방법

+0

방법 당신은 RDD에서 JSON을 표현합니까, 당신이 참조하고있는 ID에 어떻게 접근합니까? 일반적으로 JavaRDD에는 RDD의 한 행에서 작동하는 함수 매개 변수를 사용하는'filter()'메서드가 있습니다 (따라서 각 행에 정확히 무엇을 저장합니까? 즉 JSON이 어떻게 표시되는지). 그리고 부울을 반환합니다. . 나는 당신이 나에게 더 많은 정보를 주면 대답에 코드 스 니펫을 줄 수있다. –

+0

미안하지만,이 예제처럼 json 문서를 제공하지 않았다. [ { "$ 1": { "cas": 1513356396096127000, " 플래그 ": 33554432, "ID ":"CD1e23456782 " "유형 ":"JSON CD1e23456782 " } } ]와 ArrayList를이 [이다" ","이 같은 CDde23456782 "], 나는 JSON 문서를 얻을 수 있습니다 id by –

+0

미안하지만 아직도 나에게 분명하지 않다. '$ 1 '은 무엇입니까? 각각의 JSON 문서가 '$ 1'속성을 가지고 있습니까? 아니면 다른 것입니까? 아니면 그냥 RDD 표현이며 실제 JSON은'{ "cas": 1513356396096127000, "flags": 33554432, "id": "CD1e23456782", "type": "json"}'입니까? 또한 JSON은 RDD에 String으로 저장되어 있습니까? 아니면 어떤 종류의 객체 구조로 저장되어 있습니까? BTW 당신이 원래의 질문을 편집하여 코멘트 대신에 정보를 추가하여 더 명확하게 할 수 있습니다. –

답변

0
javaRdd.filter(json -> arrayList.contains(json.get("id"))) 

으로 그것을 할 방법을 잘 수행 할 수 있습니다 알고있다 (I 모르겠어요 무엇을 구조의 종류가 어떻게 JSON이 표시됩니다), arrayList는 ID의 목록이며, json.get("id") 그냥 JSON에서 ID를 얻는 일부 방법 의미 - 좀 더 구체적으로 어렵다 다시, 더 많은 정보없이를

+0

Alex, arraylist에없는 모든 json 문서를 새로운 RDD로 가져 오는 방법을 알고 있습니까? –

+0

문서 목록을 얻으려면 arraylist에 **없는 ** 필터 조건을 바꾸면됩니다 : javaRdd.filter (json ->! arrayList.contains (json.get ("id")))' –

관련 문제