Tôi mới sử dụng Spark, SparkR và thường là tất cả các công nghệ liên quan đến HDFS. Tôi đã cài đặt Spark 1.5.0 gần đây và chạy một số mã đơn giản với SparkR:Nút cổ chai SparkR trong createDataFrame?
Sys.setenv(SPARK_HOME="/private/tmp/spark-1.5.0-bin-hadoop2.6")
.libPaths("/private/tmp/spark-1.5.0-bin-hadoop2.6/R/lib")
require('SparkR')
require('data.table')
sc <- sparkR.init(master="local")
sqlContext <- sparkRSQL.init(sc)
hiveContext <- sparkRHive.init(sc)
n = 1000
x = data.table(id = 1:n, val = rnorm(n))
Sys.time()
xs <- createDataFrame(sqlContext, x)
Sys.time()
Mã sẽ thực thi ngay lập tức. Tuy nhiên, khi tôi đổi nó thành n = 1000000
, mất khoảng 4 phút (thời gian giữa hai cuộc gọi Sys.time()
). Khi tôi kiểm tra các công việc này trong bảng điều khiển trên cổng: 4040, công việc cho n = 1000
có thời lượng 0,2 giây và công việc cho n = 1000000
0,3 giây. Tôi có làm điều gì sai?
Tôi mất một thời gian do một số lỗi khác trên đường không đề cập đến việc tôi quên những thứ lạ lùng như thế nào trong cột khung dữ liệu) nhưng điều này sẽ được giải quyết trong 1.6.0 : [SPARK-11086] (https://issues.apache.org/jira/browse/SPARK-11086) – zero323