我是Spark,SparkR和一般所有HDFS相关技术的新手。我已经安装了最近的Spark 1.5.0并运行SparkR的一些简单代码:createDataFrame中的SparkR瓶颈?
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()
代码立即执行。但是,当我将其更改为n = 1000000
时,大约需要4分钟(两个Sys.time()
调用之间的时间)。当我在控制台端口4040上检查这些作业时,作业n = 1000
的持续时间为0.2s,作业为n = 1000000
0.3s。难道我做错了什么?
我花了一段时间,因为在途中出现了一些意想不到的问题(在途中碰到一些其他错误,更别提我忘记了可以把它们作为数据帧列的奇怪的东西),但这应该在1.6.0 :[SPARK-11086](https://issues.apache.org/jira/browse/SPARK-11086) – zero323