Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
为什么带有persist的数据需要时间在Scala中执行一系列任务_Scala_Apache Spark - Fatal编程技术网

为什么带有persist的数据需要时间在Scala中执行一系列任务

为什么带有persist的数据需要时间在Scala中执行一系列任务,scala,apache-spark,Scala,Apache Spark,这是我的示例代码: val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_AND_DISK_2) 我正在运行一系列任务,例如从hdfs读取文件并计算其记录,然后再次执行一些预处理器,如binning、join或groupby,然后查找结果的计数,然后将文件保存到hdfs 我注意到一点,在使用预处理器运行时,join有时会因为数据的持久性而卡住 如果我删除此持久化,它将运行。现在我对数据的持久性有些怀疑。为什么坚持只对某些任务

这是我的示例代码:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_AND_DISK_2)
我正在运行一系列任务,例如从hdfs读取文件并计算其记录,然后再次执行一些预处理器,如binning、join或groupby,然后查找结果的计数,然后将文件保存到hdfs

我注意到一点,在使用预处理器运行时,join有时会因为数据的持久性而卡住

如果我删除此持久化,它将运行。现在我对数据的持久性有些怀疑。为什么坚持只对某些任务有效


请帮我找出我的疑问

您的问题中缺少很多重要数据:

  • 输入数据的大小是多少
  • 您的执行器的RAM大小是多少
  • 为什么选择StorageLevel.MEMORY\u和磁盘?为什么是内存和磁盘呢
  • 为了执行转换/操作,您实际使用的代码是什么
根据您提供的数据:

删除“_2”可能有助于:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅内存分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区您需要复制数据吗?

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_AND_DISK)
仅使用内存_可能有助于:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅使用内存可能会更好:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅内存\u SER-将RDD存储为序列化Java对象(每个分区一个字节数组)。这通常比反序列化对象更节省空间,特别是在使用快速序列化程序时,但读取时需要更多CPU


更多信息可在此处找到:

您的问题中缺少许多重要数据:

  • 输入数据的大小是多少
  • 您的执行器的RAM大小是多少
  • 为什么选择StorageLevel.MEMORY\u和磁盘?为什么是内存和磁盘呢
  • 为了执行转换/操作,您实际使用的代码是什么
根据您提供的数据:

删除“_2”可能有助于:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅内存分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区分区您需要复制数据吗?

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_AND_DISK)
仅使用内存_可能有助于:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅使用内存可能会更好:

val file = sc.textFile(fileapath).persist(StorageLevel.MEMORY_ONLY)
仅内存\u SER-将RDD存储为序列化Java对象(每个分区一个字节数组)。这通常比反序列化对象更节省空间,特别是在使用快速序列化程序时,但读取时需要更多CPU


更多信息可在此处找到:

@AkhilaV-我回答了你的问题吗?@AkhilaV-我回答了你的问题吗?