Tha*_*Guy 5 apache-spark apache-spark-sql pyspark
我有 128 个核心、8 个节点、每个节点 186Gb 内存。
我有从 jdbc 源加载的数据帧 (Df)。它有一个分区。然后我打电话:
c = Df.repartition(128*3).cache().count()
Run Code Online (Sandbox Code Playgroud)
应用程序 Web UI 显示缓存的 rdd 有 384 个分区,但全部位于一个节点(我们称之为节点 1)上,RAM 大小为 57Mb。
当我查看计数阶段时,我看到 384 个任务,全部在节点 1 上执行。
为什么 Spark 不将数据帧均匀分布在所有节点上?
我在 pycharm 中运行这个。以下是我设置的配置值:
spark = SparkSession \
.builder \
.master("spark://sparkmaster:7087") \
.appName(__SPARK_APP_NAME__) \
.config("spark.executor.memory", "80g") \
.config("spark.eventlog.enabled", "True") \
.config("spark.eventlog.dir", r"C:\Temp\Athena\UAT\Logs") \
.config("spark.cores.max", 128) \
.config("spark.sql.crossJoin.enabled", "True") \
.config("spark.executor.extraLibraryPath","/net/share/grid/bin/spark/UAT/bin/vertica-jdbc-8.0.0-0.jar") \
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \
.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
这是我的火花属性
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |