我应该在代码中添加什么以避免使用pyspark时出现“超过允许的最大字节数”错误?

2024-10-04 01:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有400万行和10列的数据帧。我正试图使用pyspark从clouderadatascience工作台将这段代码写到hdfs中的一个表中。尝试执行此操作时遇到错误:

[Stage 0:>                                                          (0 + 1) / 
2]19/02/20 12:31:04 ERROR datasources.FileFormatWriter: Aborting job null.
org.apache.spark.SparkException: Job aborted due to stage failure: Serialized task 0:0 was 318690577 bytes, which exceeds max allowed: spark.rpc.message.maxSize (134217728 bytes). Consider increasing spark.rpc.message.maxSize or using broadcast variables for large values.

我可以将数据帧分成3个数据帧,并执行spark write 3次,但是如果可能的话,我只想做一次,可能的话,可以在spark代码中添加一些东西,比如coalesce。在

^{pr2}$

Tags: 数据代码messagebytes错误errorhdfsrpc
1条回答
网友
1楼 · 发布于 2024-10-04 01:35:40

用户10465355提到我应该直接使用Spark。这样做更简单,也是正确的方法。在

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Networks').getOrCreate()

dataset = spark.read.csv('Networks_arin_db_2-20-2019_parsed.csv', header=True, inferSchema=True)
dataset.show(5)

dataset.write \
  .mode("append") \
  .option("path", "/user/hive/warehouse/analytics.db/arin_network") \
  .saveAsTable("analytics.arin_network")

相关问题 更多 >