0

나는이를 통해 피닉스에서 데이터를 로딩하고 있습니다 :일부 계산을 수행하기 위해 배열 목록에서 데이터 프레임 열 값을 수집하고 싶습니다. 가능합니까?

val tableDF = sqlContext.phoenixTableAsDataFrame("Hbtable", Array("ID", "distance"), conf = configuration) 

및 열에서 다음과 같은 계산을 수행하려는 것은 distance 값 :

val list=Array(10,20,30,40,10,20,0,10,20,30,40,50,60)//list of values from the column distance 
val first=list(0) 
val last=list(list.length-1) 
var m = 0; 
for (a <- 0 to list.length-2) { 
    if (list(a + 1) < list(a) && list(a+1)>=0) 
    { 
    m = m + list(a) 
    } 
} 
val totalDist=(m+last-first) 
+0

당신은'DataFrame'에서 계산을 수행 할 또는 실제'Array' 타입으로 열 값을 수집 싶은가? –

+0

어떤 것이 든 괜찮습니다. 결국 코드에서 주어진 총 거리를 찾고 싶습니다. 나는 쉽게 배열로 계산을 수행하는 것을 선호한다. 당신은 나에게도 제안 할 수있다. – vivek

답변

0

당신은 같은 것을 할 수 있습니다. 그것은 Array[Any]

`val array = df.select("distance").rdd.map(r => r(0)).collect() 

을 반환합니다. 데이터 유형을 올바르게 얻으려면 사용할 수 있습니다. 그것은 반환 Array[Int]

val array = df.select("distance").rdd.map(r => r(0).asInstanceOf[Int]).collect() 
+0

감사합니다 shankar, 그것은 나를 도와줍니다 – vivek

+0

Shankar는 수집가가 모든 데이터를 운전자에게 올바르게 가져 오기 때문에 수집을 사용하여이 작업을 수행 할 수 있습니까? 그래서 그것은 데이터가 매우 거대한 문제가 될 것입니다 – vivek

관련 문제