2017-10-11 1 views
0

나는 스파크에 매우 흥미 롭다. 나는 SPARK 작업으로 약 420MB의 데이터를 가진 파일을 만들었다. 특정 조건을 기반으로 해당 파일에서 동시에 데이터를 쿼리하고 json 형식의 데이터를 반환하는 Java 응용 프로그램 만 있습니다. (데이터베이스 제외) 동일한 작업을 수행하는 다른 옵션은 무엇입니까,RESTful API를 통해 SPARK 작업에 의해 생성 된 데이터 쿼리하기

1)Livy 
2)Spark job-server 

가능한 경우, 은 지금까지 나는 SPARK 두 가지의 RESTful API를 발견하지만, 그들은 단지 원격 SPARK 작업을 제출하고 SPARK 컨텍스트를 관리하기위한인가?

답변

1

실제로 Livy를 사용하여 RESTful 방식으로 친절한 JSON 결과를 얻을 수 있습니다!

session_url = host + "/sessions/1" 
statements_url = session_url + '/statements' 
data = { 
     'code': textwrap.dedent("""\ 
     val d = spark.sql("SELECT COUNT(DISTINCT food_item) FROM food_item_tbl") 
     val e = d.collect 
     %json e 
     """)} 
r = requests.post(statements_url, data=json.dumps(data), headers=headers) 
print r.json() 

내 참조 대답 : Apache Livy: query Spark SQL via REST: possible?

관련 : Livy Server: return a dataframe as JSON?

+0

감사 가렌. 이 접근법에서 json 생성을위한 크기 또는 길이 제한이 있습니까? –

+0

크기 제한이 있는지는 잘 모르겠지만, "수집"을해야하기 때문에 몇 가지 고유 한 제약 사항이 있습니다. 그 결과는 다시 운전자에게 돌아 간다. 만약 당신이 그것을 빌드하고 백만 행 결과를 반환 기다릴 시간이 있다면, 그것을 잘 할 수 있습니다;) – Garren

+0

'{ "code": "textwrap.dedent (\"로 요청 본문에 데이터를 게시하는' \ "\" val d = spark.sql (\ "food_item_tbl부터 선택하세요.") val e = d.collect \ % json e \ "\"\ ")"}. 작동하지 않습니다. 여기에 뭔가가 없습니다. –

관련 문제