Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用SparkyR'将RDD持久化到磁盘;s spark_read_csv?_R_Apache Spark_Apache Spark Sql_Sparklyr - Fatal编程技术网

为什么使用SparkyR'将RDD持久化到磁盘;s spark_read_csv?

为什么使用SparkyR'将RDD持久化到磁盘;s spark_read_csv?,r,apache-spark,apache-spark-sql,sparklyr,R,Apache Spark,Apache Spark Sql,Sparklyr,我有一个带有两个工作进程的Spark群集—所有节点都有16GB的RAM。 我使用Sparkyr Spark_read_csv(下面的代码)读取S3中的数据,并使用MEMORY=TRUE参数,但尽管有足够的内存,大多数数据都会溢出到磁盘。RStudio服务器安装在与Spark master相同的节点上。你知道为什么会发生这种情况,以及这是否是最优的吗?我怎么能调整它?谢谢 flightsFull <- spark_read_csv(sc, "flights_spark",

我有一个带有两个工作进程的Spark群集—所有节点都有16GB的RAM。 我使用Sparkyr Spark_read_csv(下面的代码)读取S3中的数据,并使用MEMORY=TRUE参数,但尽管有足够的内存,大多数数据都会溢出到磁盘。RStudio服务器安装在与Spark master相同的节点上。你知道为什么会发生这种情况,以及这是否是最优的吗?我怎么能调整它?谢谢

flightsFull <- spark_read_csv(sc, "flights_spark", 
                          path =  "/s3fs/mypath/multipleFiles", 
                          header = TRUE,
                          memory = TRUE,
                          columns = list(
                            Year = "character",
                            Month = "character",
                            DayofMonth = "character",
                            DayOfWeek = "character",
                            DepTime = "character",
                            CRSDepTime = "character",
                            ArrTime = "character",
                            CRSArrTime = "character",
                            UniqueCarrier = "character",
                            FlightNum = "character",
                            TailNum = "character",
                            ActualElapsedTime = "character",
                            CRSElapsedTime = "character",
                            AirTime = "character",
                            ArrDelay = "character",
                            DepDelay = "character",
                            Origin = "character",
                            Dest = "character",
                            Distance = "character",
                            TaxiIn = "character",
                            TaxiOut = "character",
                            Cancelled = "character",
                            CancellationCode = "character",
                            Diverted = "character",
                            CarrierDelay = "character",
                            WeatherDelay = "character",
                            NASDelay = "character",
                            SecurityDelay = "character",
                            LateAircraftDelay = "character"), 
                          infer_schema = FALSE)
spark env.sh

SPARK_MASTER_HOST=ip-host.eu-west-1.compute.internal
SPARK_WORKER_CORES=8
SPARK_WORKER_MEMORY=32768m
Edit2-添加执行者窗格

我的理解是,您使用默认的内存选项来提交spark应用程序,尽管有足够的内存可供使用,但不使用

384.1
是您使用的默认存储内存,因此Spark开始将块持久化到磁盘


我的理解是,您有一个Spark独立集群,其中包含独立主集群和一个独立工作集群。这就是
spark env.sh
所建议的(未指定工作人员数量),这就是我在屏幕截图中看到的spark executors数量,因为spark Standalone提供的spark executors数量与独立工作人员数量相同

我的猜测是增加驱动程序和执行程序的内存属性,然后重新开始。这将增加内存空间,减少磁盘使用


我还注意到,所讨论的RDD的存储级别是磁盘序列化1x,因此Sparkyr可以决定自行设置存储级别(给定内存限制)。它通常由Spark开发人员指定,但是
Spark\u read\u csv
可能会以某种方式决定它本身。

我无法重现错误,您可以添加Spark配置文件吗?spark-default.conf和spark-env.sh是否也可以连接环境?你如何
spark提交应用程序?
sparkyr
正在调用
CACHE TABLE
,因此很可能是一个环境/默认问题。如果你真的检查了文档,它会更有用,但为了更简单,这里涉及了
CACHE TABLE
spark\u read\u csv
->)不要问我为什么决定使用它:)谢谢你的提示
spark\u read\u csv
确实有一个名为
options
的参数,但是doc没有告诉您哪些参数可以传递到那里。也可以在
spark\u connect
config参数中修改连接本身。我会看看这个,然后做个实验。
SPARK_MASTER_HOST=ip-host.eu-west-1.compute.internal
SPARK_WORKER_CORES=8
SPARK_WORKER_MEMORY=32768m