You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab中PySpark导入SparkContext时报错求助

解决PySpark导入SparkContext时出现的TypeError: an integer is required (got type bytes)错误

问题描述

在Google Colab(或其他IDE)构建PySpark项目时,执行以下代码报错:

from pyspark import SparkContext
sc = SparkContext.getOrCreate()

错误栈如下:

TypeError                                 Traceback (most recent call last)
<ipython-input-9-cf2b62201e08> in <module>
----> 1 from pyspark import SparkContext
      2 
      3 sc = SparkContext.getOrCreate()
      4 sc

4 frames
/content/spark-2.3.1-bin-hadoop2.7/python/pyspark/cloudpickle.py in _make_cell_set_template_code()
    125         )
    126     else:
---> 127         return types.CodeType(
    128             co.co_argcount,
    129             co.co_kwonlyargcount,"

TypeError: an integer is required (got type bytes)

核心原因

该错误源于Spark版本与Python版本不兼容。你使用的Spark 2.3.1是较旧版本,对Python 3.8及以上版本的支持存在缺陷,其中pyspark/cloudpickle.py中的types.CodeType调用在高版本Python中参数类型要求发生了变化,导致类型不匹配报错。

解决方案

1. 安装与Python版本兼容的Spark版本

放弃Spark 2.x,改用Spark 3.x系列(推荐3.2及以上),这类版本对Python 3.7-3.11有良好支持,适配Colab默认的高版本Python环境。

2. 在Colab中重新配置Spark环境

执行以下完整步骤:

# 更新系统包并安装Java 8(Spark依赖)
!apt-get update
!apt-get install openjdk-8-jdk-headless -qq > /dev/null

# 下载Spark 3.3.2(搭配Hadoop 3,兼容性好)
!wget -q https://archive.apache.org/dist/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz
!tar xf spark-3.3.2-bin-hadoop3.tgz

# 安装findspark用于初始化Spark
!pip install -q findspark

设置环境变量并初始化Spark:

import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.3.2-bin-hadoop3"

import findspark
findspark.init()

# 测试SparkContext
from pyspark import SparkContext
sc = SparkContext.getOrCreate()
print(sc)

3. 验证版本匹配

  • 查看Colab当前Python版本:!python --version
  • 对照Spark官方文档确认版本兼容性,比如:
    • Spark 3.3.x支持Python 3.7-3.10
    • Spark 3.4.x支持Python 3.7-3.11

内容的提问来源于stack exchange,提问作者Gaurav Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:25:13