Below is the syntax I am running in a Jupyter Notebook on a shared research server. The table I am trying to pull into Pandas is quite large, which is why i have my configuration like this: I believe the table is 12GB I have gotten many errors from out of memory (OOM) to heartbeatintervaltimeout which has caused me to slowly esclate the size of the spark config. I have copied in the most recent error in hopes that it helps you help me. I am less familiar with Spark so any insight would be helpful. spark = ( SparkSession.builder .config("spark.executor.memory", "32g") .config("spark.driver.memory", "36g") .config("spark.executor.memoryOverhead", "48") .config("spark.driver.maxResultSize", "0") .config("spark.executor.cores", 8) .config("spark.driver.allowMultipleContexts", "true") .config("spark.sql.execution.arrow.enabled", "true") .getOrCreate() ) spark.sql("USE foo_database") df_spark = spark.table("foo_tablename") df_spark = df_spark.repartition(32) df_pandas = df_spark.toPandas() Error code from running: /usr/local/spark/python/pyspark/sql/dataframe.py:2139: UserWarning: toPandas attempted Arrow optimization because 'spark.sql.execution.arrow.enabled' is set to true, but has reached the error below and can not continue. Note that 'spark.sql.execution.arrow.fallback.enabled' does not have an effect on failures in the middle of computation. An error occurred while calling o377.getResult. : org.apache.spark.SparkException: Exception thrown in awaitResult: at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:226) at org.apache.spark.api.python.PythonServer.getResult(PythonRDD.scala:874) at org.apache.spark.api.python.PythonServer.getResult(PythonRDD.scala:870) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.spark.SparkException: Job 1 cancelled because SparkContext was shut down at org.apache.spark.scheduler.DAGScheduler$$anonfun$cleanUpAfterSchedulerStop$1.apply(DAGScheduler.scala:932) at org.apache.spark.scheduler.DAGScheduler$$anonfun$cleanUpAfterSchedulerStop$1.apply(DAGScheduler.scala:930) at scala.collection.mutable.HashSet.foreach(HashSet.scala:78) at org.apache.spark.scheduler.DAGScheduler.cleanUpAfterSchedulerStop(DAGScheduler.scala:930) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onStop(DAGScheduler.scala:2128) at org.apache.spark.util.EventLoop.stop(EventLoop.scala:84) at org.apache.spark.scheduler.DAGScheduler.stop(DAGScheduler.scala:2041) at org.apache.spark.SparkContext$$anonfun$stop$6.apply$mcV$sp(SparkContext.scala:1949) at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1340) at org.apache.spark.SparkContext.stop(SparkContext.scala:1948) at org.apache.spark.SparkContext$$anon$3.run(SparkContext.scala:1903) at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:737) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2061) at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3318) at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3287) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply$mcV$sp(PythonRDD.scala:456) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply(PythonRDD.scala:456) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply(PythonRDD.scala:456) at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360) at org.apache.spark.api.python.PythonRDD$$anonfun$7.apply(PythonRDD.scala:457) at org.apache.spark.api.python.PythonRDD$$anonfun$7.apply(PythonRDD.scala:453) at org.apache.spark.api.python.SocketFuncServer.handleConnection(PythonRDD.scala:994) at org.apache.spark.api.python.SocketFuncServer.handleConnection(PythonRDD.scala:988) at org.apache.spark.api.python.PythonServer$$anonfun$11$$anonfun$apply$9.apply(PythonRDD.scala:853) at scala.util.Try$.apply(Try.scala:192) at org.apache.spark.api.python.PythonServer$$anonfun$11.apply(PythonRDD.scala:853) at org.apache.spark.api.python.PythonServer$$anonfun$11.apply(PythonRDD.scala:852) at org.apache.spark.api.python.PythonServer$$anon$1.run(PythonRDD.scala:908) warnings.warn(msg) --------------------------------------------------------------------------- Py4JJavaError Traceback (most recent call last) <ipython-input-5-1f9036f1030b> in <module> 35 df_spark = df_spark.repartition(32) 36 ---> 37 df_pandas = df_spark.toPandas() # Potentially large collect operation /usr/local/spark/python/pyspark/sql/dataframe.py in toPandas(self) 2120 _check_dataframe_localize_timestamps 2121 import pyarrow -> 2122 batches = self._collectAsArrow() 2123 if len(batches) > 0: 2124 table = pyarrow.Table.from_batches(batches) /usr/local/spark/python/pyspark/sql/dataframe.py in _collectAsArrow(self) 2182 return list(_load_from_socket((port, auth_secret), ArrowStreamSerializer())) 2183 finally: -> 2184 jsocket_auth_server.getResult() # Join serving thread and raise any exceptions 2185 2186 ########################################################################################## /usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in __call__(self, *args) 1255 answer = self.gateway_client.send_command(command) 1256 return_value = get_return_value( -> 1257 answer, self.gateway_client, self.target_id, self.name) 1258 1259 for temp_arg in temp_args: /usr/local/spark/python/pyspark/sql/utils.py in deco(*a, **kw) 61 def deco(*a, **kw): 62 try: ---> 63 return f(*a, **kw) 64 except py4j.protocol.Py4JJavaError as e: 65 s = e.java_exception.toString() /usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name) 326 raise Py4JJavaError( 327 "An error occurred while calling {0}{1}{2}.\n". --> 328 format(target_id, ".", name), value) 329 else: 330 raise Py4JError( Py4JJavaError: An error occurred while calling o377.getResult. : org.apache.spark.SparkException: Exception thrown in awaitResult: at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:226) at org.apache.spark.api.python.PythonServer.getResult(PythonRDD.scala:874) at org.apache.spark.api.python.PythonServer.getResult(PythonRDD.scala:870) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.spark.SparkException: Job 1 cancelled because SparkContext was shut down at org.apache.spark.scheduler.DAGScheduler$$anonfun$cleanUpAfterSchedulerStop$1.apply(DAGScheduler.scala:932) at org.apache.spark.scheduler.DAGScheduler$$anonfun$cleanUpAfterSchedulerStop$1.apply(DAGScheduler.scala:930) at scala.collection.mutable.HashSet.foreach(HashSet.scala:78) at org.apache.spark.scheduler.DAGScheduler.cleanUpAfterSchedulerStop(DAGScheduler.scala:930) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onStop(DAGScheduler.scala:2128) at org.apache.spark.util.EventLoop.stop(EventLoop.scala:84) at org.apache.spark.scheduler.DAGScheduler.stop(DAGScheduler.scala:2041) at org.apache.spark.SparkContext$$anonfun$stop$6.apply$mcV$sp(SparkContext.scala:1949) at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1340) at org.apache.spark.SparkContext.stop(SparkContext.scala:1948) at org.apache.spark.SparkContext$$anon$3.run(SparkContext.scala:1903) at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:737) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2061) at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3318) at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3287) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply$mcV$sp(PythonRDD.scala:456) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply(PythonRDD.scala:456) at org.apache.spark.api.python.PythonRDD$$anonfun$7$$anonfun$apply$3.apply(PythonRDD.scala:456) at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360) at org.apache.spark.api.python.PythonRDD$$anonfun$7.apply(PythonRDD.scala:457) at org.apache.spark.api.python.PythonRDD$$anonfun$7.apply(PythonRDD.scala:453) at org.apache.spark.api.python.SocketFuncServer.handleConnection(PythonRDD.scala:994) at org.apache.spark.api.python.SocketFuncServer.handleConnection(PythonRDD.scala:988) at org.apache.spark.api.python.PythonServer$$anonfun$11$$anonfun$apply$9.apply(PythonRDD.scala:853) at scala.util.Try$.apply(Try.scala:192) at org.apache.spark.api.python.PythonServer$$anonfun$11.apply(PythonRDD.scala:853) at org.apache.spark.api.python.PythonServer$$anonfun$11.apply(PythonRDD.scala:852) at org.apache.spark.api.python.PythonServer$$anon$1.run(PythonRDD.scala:908) Continue reading...