小编Pyt*_*ist的帖子

总分配超过堆内存的 95.00%(960,285,889 字节)- pyspark 错误

我用 python 2.7 编写了一个脚本,使用 pyspark 将 csv 转换为 parquet 和其他内容。当我在小数据上运行脚本时,它运行良好,但是当我在更大的数据(250GB)上运行脚本时,我遇到了以下错误 - 总分配超过堆内存的 95.00%(960,285,889 字节)。我怎么解决这个问题?发生这种情况的原因是什么?恩克斯!

部分代码:导入的库: import pyspark as ps from pyspark.sql.types import StructType, StructField, IntegerType, DoubleType, StringType, TimestampType,LongType,FloatType from collections import OrderedDict from sys import argv

使用pyspark:

 schema_table_name="schema_"+str(get_table_name())
 print (schema_table_name)
 schema_file= OrderedDict()

schema_list=[]
ddl_to_schema(data)
for i in schema_file:
schema_list.append(StructField(i,schema_file[i]()))

schema=StructType(schema_list)
print schema

spark = ps.sql.SparkSession.builder.getOrCreate()
df = spark.read.option("delimiter", 
",").format("csv").schema(schema).option("header", "false").load(argv[2])
df.write.parquet(argv[3])

# df.limit(1500).write.jdbc(url = url, table = get_table_name(), mode = 
  "append", properties = properties)
# df = spark.read.jdbc(url = url, …
Run Code Online (Sandbox Code Playgroud)

python csv heap-memory parquet pyspark

4
推荐指数
1
解决办法
5862
查看次数

标签 统计

csv ×1

heap-memory ×1

parquet ×1

pyspark ×1

python ×1