2017-11-19 34 views
0

sparkR을 처음 사용하고 sparkR 데이터 프레임을 열 기반 데이터 프레임 목록으로 분할하려고합니다.SparkR 데이터 프레임을 데이터 프레임 목록으로 분할

데이터에는 Sls_D(date), mdse_item_i(item id), co_loc_i(location id), traffic_ti_8_00, traffic_ti_9_00, traffic_ti_10_00, traffic_ti_11_00의 10 억 개의 레코드가 있으며 각각 특정 시간에 트래픽이 없습니다.

데이터 스냅 샷 :

sls_d co_loc_i mdse_item_i traffic_ti_8_00 traffic_ti_9_00 traffic_ti_10_00 traffic_ti_11_00 

    1 2016-10-21  1592  4694620    1    113    156    209 
    2 2016-10-21  1273  4694620    1    64    152    249 
    3 2016-10-21  1273 15281024    1    64    152    249 
    4 2016-10-21  1498  4694620    2    54    124    184 
    5 2016-10-21  1498 15281024    2    54    124    184 

원하는 출력 :

sls_d   co_loc_i mdse_item_i traffic_ti_8_00 traffic_ti_9_00 traffic_ti_10_00 traffic_ti_11_00 
2016-10-21  4  4694620    3    67    145    283 

Dataframes의 목록입니다. X의

d.2 = split(data.2.2,list(data.2.2$mdse_item_i,data.2.2$co_loc_i,data.2.2$sls_d)) 

오류 [IND [] K] : 추출 연산자 [ 또는 서브 세트()에있어서의 최초의 파라미터를 지원하지 않는 조건을 필터링 이외 식.

가 메모리 에러 R 결과를베이스에 sparkdataframe 변환 같이 R. 을베이스에 sparkDataframe 변환 떨어져 sparkR에서 이렇게 약 어떠한 방법이며 병렬 처리의 문제를 패배.

도움을 주시면 대단히 감사하겠습니다.

+0

Answer 도움이되지? – desertnaut

답변

0

귀하의 질문에 다소 불분명합니다. Spark 데이터 프레임의 열을 분할하려는 경우 select을 사용해야합니다. 여기 SparkR 2.2에 iris 데이터를 사용하는 예는 다음과 같습니다

df <- as.DataFrame(iris) # Spark dataframe 
df 
# SparkDataFrame[Sepal_Length:double, Sepal_Width:double, Petal_Length:double, Petal_Width:double, Species:string] 

# separate the length-related & width-related columns into 2 Spark dataframes: 
df_length = select(df, 'Sepal_Length', 'Petal_Length') 
df_width = select(df, 'Sepal_Width', 'Petal_Width') 

head(collect(df_width)) # for demonstration purposes only 
# Sepal_Width Petal_Width 
# 1   3.5   0.2 
# 2   3.0   0.2 
# 3   3.2   0.2 
# 4   3.1   0.2 
# 5   3.6   0.2 
# 6   3.9   0.4 

당신은, R 목록에 이러한 2 스파크 dataframes를 넣을 수 있습니다하지만 난 잘 모르겠어요, 지금은 어떻게 의지 유용 수 - 어떤 목록 작업을 사용할 수 없습니다 [코멘트 후 편집] :

my_list = c(df_length, df_width) 
head(collect(my_list[[1]])) 
# Sepal_Length Petal_Length 
# 1   5.1   1.4 
# 2   4.9   1.4 
# 3   4.7   1.3 
# 4   4.6   1.5 
# 5   5.0   1.4 
# 6   5.4   1.7