2016-07-13 3 views
0

쿼리에서 호출 된 postgres 함수가 있습니다. 그것이 샘플과 유사한Postgres 함수를 Impala UDF 또는 Spark 함수로 변환

CREATE OR REPLACE FUNCTION test_function(id integer, dt date, days int[], accts text[], flag boolean) RETURNS float[] AS $$ 
    DECLARE 
    pt_dates date[]; 
    pt_amt integer[]; 
    amt float[]; 
    BEGIN 
    if cleared then 
     pt_dates := array(select dt from tabl); 
     pt_amt := array(select amt from tab1); 
     if array_upper(days, 1) is not null then 
     for j in 1 .. array_upper(days, 1) 
     loop 
     amt+=amt; 
     end loop; 
     end if; 
     return amt; 
    END; 
$$ LANGUAGE plpgsql; 

내가 할 수있는 가장 좋은 방법은 데이터 호수 환경에이 변환하려면? 임팔라 UDF? 또는 스파크 UDF? 또는 하이브 UDF? 임팔라 UDF에서 임팔라 데이터베이스에 어떻게 액세스합니까? 스파크 UDF를 쓰면 임팔라 껍데기에서 사용할 수 있습니까?

알려 주시기 바랍니다.

답변

0

1 게시물에 많은 질문이 있습니다. 그래서 Spark 관련 질문 만 선택하겠습니다.

수행하려는 데이터 처리를 나타내는이 SQL 쿼리가 있습니다.

  1. 마스터에
  2. SSH를, 데이터의 일부 금액을 가지고 AWS EMR로 S3
  3. 이동로 이동하고 새 클러스터를 만들 : 여기

    는 불꽃이 할 수있는 일반 식입니다 노드 및 실행이 시작되면
  4. , 당신은 rdd = sc.readText("s3://path/to/your/s3/buckets/")
  5. 를 통해 S3의 데이터를 읽을 수 pyspark 콘솔 map 기능을로에 스키마를 적용
  6. rdd2dataframe으로 변환하여 새 var. 이제 output.show()

내가이 말 그대로 특정 해답이 될 너무 높은 수준을 알고 : output = sqlContext.sql("SELECT a,b,c FROM newTableName")

  • 출력을 보여 rdd2DF = rdd2.toDF()
  • 는 SQL 쿼리를 작성하고 결과를 저장하는
  • rdd2DF.registerTempTable('newTableName') 수행 귀하의 질문에,하지만 방금 말한 모든 게 매우 google'able입니다.

    이것은 SQL 쿼리를 사용하여 많은 데이터를 처리하기 위해 Spark 및 SparkSQL에서 EMR을 활용하는 분리 된 Compute and Storage 시나리오의 예입니다.

  • 관련 문제