我刚刚才知道有Truthy和Falsy在Python这是与正常不同的价值观True和False?
是否有人可以深入解释什么truthy和falsy值?
我应该在哪里使用它们?
truthy和True值以及falsy和False值之间有什么区别?
我发现当Spark运行时,表的大小(通过Joins)增长,火花执行器最终会耗尽内存并导致整个系统崩溃.即使我尝试将临时结果写入Hive表(在HDFS上),系统仍然没有释放大量内存,并且我的整个系统在大约130个连接后崩溃.
但是,通过实验,我意识到如果我将问题分解成更小的部分,将临时结果写入hive表,并停止/启动Spark会话(和spark上下文),则系统的资源被释放.我能够使用这种方法加入超过1,000列.
但是我找不到任何文档来理解这是否被认为是一种好的做法(我知道你不应该同时获得多个会话).大多数系统在开始时获取会话并在最后关闭它.我也可以将应用程序分解为较小的应用程序,并使用像Oozie这样的驱动程序在Yarn上安排这些较小的应用程序.但是这种方法会在每个阶段启动和停止JVM,这似乎有点重量级.
所以我的问题是:在单个spark应用程序运行期间不断启动/停止spark会话以释放系统资源是不好的做法吗?
但是,您能详细说明单个JVM上单个SparkContext的含义吗?我能够调用sparkSession.sparkContext().stop(),同时也stop对SparkSession.然后我创建了一个新的SparkSession并使用了新的sparkContext.没有抛出任何错误.
我也能在JavaSparkPi没有任何问题的情况下使用它.
我已经测试了这个yarn-client并local安装了火花.
停止火花环境究竟做了什么,为什么一旦你停止了它就不能创建一个新的?