news 2026/9/20 1:20:09

Python 3.13安装实战:避坑指南与ARM64/GIL移除适配

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 3.13安装实战:避坑指南与ARM64/GIL移除适配

1. 这不是普通升级:Python 3.13安装背后的真实需求与现实陷阱

你搜“python3.13安装教程”,点开一堆图文,结果发现全是Python 3.12甚至3.11的截图改个标题——这事儿我去年在三个技术群亲眼见过。真正想装3.13的人,90%不是为了尝鲜,而是被逼的:公司新项目强制要求CPython 3.13+,CI/CD流水线报错“Unsupported Python version”,或者某个关键依赖库(比如PyTorch 2.5+、NumPy 2.0+)已明确声明仅兼容3.13及以上。别信什么“新版更快更稳”的宣传话术,Python官方从不承诺小版本号升级带来性能跃迁;3.13真正的价值在于它首次正式支持PEP 703 —— 可选的全局解释器锁(GIL)移除实验性框架,以及对Windows ARM64原生支持的完整落地。这意味着你在Surface Pro X或新MacBook Pro上跑多线程科学计算时,不再需要绕道Rust或Cython来规避GIL瓶颈。但代价是:3.13目前(截至2025年4月)仍处于预发布阶段(3.13.0rc2),官方稳定版预计2025年10月发布。所以你看到的所谓“安装包”,99%是编译好的二进制快照(snapshot build),不是最终版。我亲手试过6个不同来源的“3.13安装包”,其中4个在Windows 11 22H2上安装后pip list直接报错,2个能装但无法import asyncio。这不是你的操作问题,是生态适配还没跟上。如果你只是学Python入门,现在立刻关掉这个页面——用3.12.8完全够用,强行上3.13只会让你卡在环境配置环节三天。但如果你是数据平台工程师、量化交易系统维护者,或是为ARM64 Windows设备开发边缘AI应用的开发者,这篇内容就是为你写的:它不教你点下一步下一步,而是告诉你每个安装步骤背后的编译器链路、ABI兼容性边界、以及如何用一行命令验证你装的到底是不是真·3.13。

2. 安装前必须搞清的三道生死线:版本、平台、依赖链

2.1 版本真相:rc2 ≠ stable,snapshot ≠ production-ready

Python官网下载页(python.org/downloads)至今未上线3.13正式版,所有标称“Python 3.13”的安装包,实际来源只有三个合法渠道:

  • python.org nightly builds:每日自动构建的测试版,文件名含3.13.0aX(alpha)或3.13.0rcX(release candidate),例如python-3.13.0rc2-amd64.exe。这是最接近官方源码的版本,但可能包含未修复的内存泄漏(如2025年3月rc1中已知的ssl.SSLContext对象引用计数错误)。
  • pyenv-win 或 pyenv管理器构建的本地编译版:通过pyenv install 3.13.0rc2触发本地MSVC 17.9编译,优势是可定制--enable-optimizations参数,但耗时40分钟以上,且需提前安装Windows SDK 10.0.22621.0。
  • 第三方镜像站提供的预编译包:如清华TUNA、中科大USTC镜像站的python-3.13.0rc2-embed-amd64.zip,特点是解压即用(no-install),但缺失pipsetuptools——你得手动运行get-pip.py,而该脚本在3.13rc2中尚未适配新的sysconfig.get_path('purelib')路径逻辑,会默认装到Lib/site-packages而非python313.zip/Lib/site-packages,导致后续import失败。

提示:打开cmd输入python --version显示3.13.0rc2只是表象,真正验证方法是执行python -c "import sys; print(sys.version_info)",输出应为sys.version_info(major=3, minor=13, micro=0, releaselevel='candidate', serial=2)。若releaselevel显示'final',那一定是伪造版本号。

2.2 平台陷阱:Windows x64 ≠ Windows ARM64,别被安装包名字骗了

你下载的python-3.13.0rc2-amd64.exe,名字里的amd64其实是历史遗留术语,实际指代x86_64架构。但Windows 11已全面支持ARM64设备(如Snapdragon X Elite芯片笔记本),而3.13是首个提供原生ARM64 MSI安装包的Python版本。关键区别在于:

  • x64版3.13在ARM64 Windows上可通过x64模拟器运行,但multiprocessing模块会降级为spawn启动方式(而非默认的fork),导致子进程初始化慢3倍;
  • ARM64原生版则启用fork支持,且ctypes调用Windows API时无需跨架构转换,实测OpenCV图像处理速度提升22%。

验证方法:在PowerShell中运行(Get-ComputerInfo).CsArchitecture,返回ARM64才应下载python-3.13.0rc2-arm64.exe。若误装x64版,pip install numpy会报错ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)——因为numpy 2.0+ wheel包已按架构分发,x64版pip根本看不到ARM64 wheel。

2.3 依赖链断裂:为什么pip install会失败?根源在setuptools 69+

Python 3.13引入了PEP 668(外部包管理器标记),要求所有通过pip安装的包必须声明Direct URL元数据。而当前主流包(如requests 2.31.0、pandas 2.2.2)的wheel包均未更新此字段。结果就是:当你执行pip install requests时,pip 24.0+会检测到缺失Direct URL并拒绝安装,报错ERROR: Requested requests has no metadata to parse。解决方案不是降级pip(3.13已移除pip install --upgrade pip==23.3.1的兼容性),而是必须使用--force-reinstall --no-deps参数跳过元数据校验,再手动解决依赖。这暴露了一个残酷事实:3.13不是独立升级,而是一整套工具链的协同演进。你不仅要装Python,还得同步更新:

  • setuptools>=69.0.0(新增pyproject.toml动态构建支持)
  • pip>=24.0.0(强制PEP 668校验)
  • wheel>=0.43.0(支持pyproject.toml构建后生成direct_url.json

这三个包的版本组合必须精确匹配,差一个补丁号就可能触发ImportError: cannot import name 'Distribution' from 'pkg_resources'

3. 实操全流程:从零开始部署真实可用的Python 3.13环境(Windows)

3.1 下载与校验:避开镜像站陷阱的三步法

第一步:放弃百度搜索“python3.13安装包”,直接访问Python官方nightly builds页面(https://github.com/python/cpython/releases/tag/nightly-3.13)。找到最新rc版本(如2025-04-15发布的3.13.0rc2),点击Assets展开。你会看到多个文件:

  • python-3.13.0rc2-amd64.exe:标准Windows安装程序(含pip/setuptools)
  • python-3.13.0rc2-embed-amd64.zip:嵌入式版本(无pip,需手动安装)
  • python-3.13.0rc2-amd64-debug.exe:调试版(含pdb符号,体积大3倍)

第二步:校验SHA256哈希值。官方页面下方有SHA256SUMS文件链接,下载后用PowerShell执行:

(Get-FileHash .\python-3.13.0rc2-amd64.exe -Algorithm SHA256).Hash

对比SHA256SUMS文件中对应行的值。若不一致,说明文件被篡改或下载损坏——我曾遇到某镜像站提供的exe哈希值与官方相差2位,安装后venv模块无法创建隔离环境。

第三步:禁用杀毒软件实时扫描。Windows Defender在3.13安装过程中会拦截pythonw.exe的注册表写入(因3.13新增了HKEY_CURRENT_USER\Software\Python\PythonCore\3.13\InstallPath键值),导致安装完成但桌面快捷方式无法启动。临时关闭Defender后重试即可。

3.2 安装过程中的关键选项设置(附参数详解)

运行python-3.13.0rc2-amd64.exe后,出现安装向导。这里必须注意三个隐藏选项:

  • ☑ Add Python 3.13 to PATH:勾选!3.13的PATH添加逻辑已重构,不再依赖py.exe启动器,而是直接将C:\Users\<user>\AppData\Local\Programs\Python\Python313写入用户PATH。若不勾选,后续所有命令行操作均需绝对路径调用。
  • ☑ Associate files with Python 3.13:建议取消勾选。3.13默认关联.py文件到python.exe而非pythonw.exe,双击运行GUI脚本时会弹出黑窗口。如需保留GUI静默运行,安装后手动执行:
    assoc .py=Python.File ftype Python.File="C:\Users\<user>\AppData\Local\Programs\Python\Python313\pythonw.exe" "%1" %*
  • ☑ Install for all users:仅当你是系统管理员且需供团队共享时勾选。3.13的多用户安装会将Python安装到C:\Program Files\Python313,但该路径下Scripts目录权限受限,pip install需以管理员身份运行,极易引发权限冲突。

注意:安装界面底部的“Customize installation”按钮千万别点!3.13的自定义安装存在BUG:若取消勾选“pip”组件,安装程序不会提示“将无法使用pip”,而是静默跳过,导致安装完成后python -m pip --version报错No module named pip,且无法通过ensurepip修复(因3.13中ensurepip模块已被移除)。

3.3 初始化环境:解决pip失效与包冲突的硬核方案

安装完成后,打开cmd执行python -m pip --version,大概率会报错:

ModuleNotFoundError: No module named 'pip._internal.cli.main'

这是因为3.13rc2的pip 24.0.0与pip._internal模块结构变更不兼容。正确解法是绕过pip,直接用get-pip.py重装

  1. 下载适配3.13的get-pip.py(必须用2025年4月后更新的版本):

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  2. 执行安装并强制指定pip版本:

    python get-pip.py --force-reinstall --no-cache-dir pip==24.0.1 setuptools==69.2.0 wheel==0.43.0

    关键参数说明:

    • --force-reinstall:覆盖已损坏的pip安装
    • --no-cache-dir:避免pip缓存中残留旧版wheel导致冲突
    • 版本锁定:pip==24.0.1修复了rc2中pip list --outdated的JSON解析错误,setuptools==69.2.0解决了pyproject.toml[build-system]字段的循环导入问题
  3. 验证是否生效:

    python -m pip list | findstr "pip setuptools wheel"

    正确输出应为:

    pip 24.0.1 setuptools 69.2.0 wheel 0.43.0

3.4 创建生产级虚拟环境:venv vs virtualenv的终极选择

3.13内置的venv模块已全面重构,支持--system-site-packages参数的细粒度控制,但存在一个致命缺陷:venv创建的环境无法继承父环境的pip配置(如index-url、trusted-host)。这意味着如果你公司私有PyPI源配置在全局pip.ini中,venv环境里pip install仍会连接公网pypi.org。解决方案是改用virtualenv

  1. 全局安装virtualenv(注意版本):
    python -m pip install virtualenv==20.25.0
    virtualenv 20.25.0是首个完全适配3.13 PEP 668的版本,其--system-site-packages模式会自动复制父环境的pip.conf
  2. 创建带私有源的虚拟环境:
    virtualenv --system-site-packages --extra-search-dir C:\my_pypi_packages myenv
    参数详解:
    • --system-site-packages:允许访问全局site-packages(用于复用已安装的大型包如tensorflow)
    • --extra-search-dir:指定本地wheel包目录,优先于网络源安装
  3. 激活后验证pip源:
    myenv\Scripts\activate.bat pip config list
    应显示global.index-url='https://my-private-pypi/simple/'

4. 常见故障排查手册:从报错信息直击底层原因

4.1 “ImportError: cannot import name 'Mapping' from 'collections'”——这不是代码问题,是Python 3.13的API清洗

这个报错在升级3.13后高频出现,根源在于3.13彻底移除了collections.Mapping抽象基类(ABC),统一归入collections.abc.Mapping。但大量旧包(如Flask 2.2.x、SQLAlchemy 1.4.x)的__init__.py中仍写有from collections import Mapping。解决方案分三级:

  • 一级修复(推荐):升级依赖包。执行pip list --outdated --format=freeze | findstr "flask sqlalchemy",对过期包执行pip install --upgrade flask==3.0.3 sqlalchemy==2.0.25。注意:Flask 3.0+要求Python 3.12+,SQLAlchemy 2.0+要求3.13+,这是强制门槛。
  • 二级兼容(临时):在项目入口文件顶部插入兼容代码:
    try: from collections.abc import Mapping except ImportError: from collections import Mapping # Python < 3.13 fallback
    但此法仅适用于你自己可控的代码,无法修复第三方包内部的import。
  • 三级兜底(生产环境):修改Python安装目录下的Lib\collections\__init__.py,在末尾添加:
    from collections.abc import * # 兼容旧代码的别名 Mapping = abc.Mapping MutableMapping = abc.MutableMapping

    警告:此操作违反Python官方支持政策,仅限紧急上线场景,且需在每次Python升级后重新打补丁。

4.2 “OSError: [WinError 126] 找不到指定的模块”——DLL加载失败的精准定位法

当运行import numpy报此错时,90%情况是numpy wheel未适配3.13的ABI标签。3.13的ABI标签已从cp312升级为cp313,而numpy 2.0.0的wheel包虽标注cp313,但其内部numpy/core/_multiarray_umath.cp313-win_amd64.pyd依赖的VCRUNTIME140_1.dll版本与3.13编译时链接的版本不一致。验证方法:

  1. dumpbin /dependents查看pyd依赖:
    dumpbin /dependents "C:\Users\<user>\AppData\Local\Programs\Python\Python313\Lib\site-packages\numpy\core\_multiarray_umath.cp313-win_amd64.pyd"
  2. 对比3.13安装目录libs\下的python313.dll依赖项,若VCRUNTIME140_1.dll版本号不匹配(如pyd需14.34.33231,而python313.dll链接14.33.31424),则必须重装Microsoft Visual C++ Redistributable for Visual Studio 2022(版本14.34+)。

实操心得:不要从微软官网下载“最新版”VC++,而要下载vc_redist.x64.exe的特定版本。我实测2025年4月的14.34.33231.0版本可解决95%的DLL冲突,而14.35.32215.0版本反而引发sqlite3模块初始化失败。

4.3 “UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff”——Windows控制台编码的静默杀手

3.13默认启用UTF-8作为Windows控制台的默认编码(通过SetConsoleOutputCP(65001)),但某些老旧终端(如ConEmu、旧版Windows Terminal)未正确处理BOM。当执行pip install下载含中文包名的wheel时,会因BOM解析失败崩溃。临时解决方案:

chcp 65001 set PYTHONIOENCODING=utf-8 python -c "print('测试')"

但长期方案是修改Python启动参数:在快捷方式目标栏末尾添加-X utf8,或在环境变量中设置PYTHONUTF8=1。注意:PYTHONUTF8=1会使所有字符串操作强制UTF-8,可能影响依赖locale.getpreferredencoding()的包(如pathlib.Path在处理GBK路径时)。

4.4 “ModuleNotFoundError: No module named '_ctypes'”——Windows平台特有的编译缺失

此报错表明3.13安装包缺少_ctypes扩展模块,常见于从源码编译的版本。3.13的_ctypes依赖Windows SDK 10.0.22621.0中的windows.h新宏定义,若编译时SDK版本过低(如10.0.19041.0),configure脚本会跳过_ctypes构建。验证方法:

import sysconfig print(sysconfig.get_config_var('HAVE_LIBFFI'))

输出False即确认缺失。修复需重新编译:

  1. 安装Windows SDK 10.0.22621.0(通过Visual Studio Installer)
  2. 设置环境变量:
    set DISTUTILS_USE_SDK=1 set MSSdk=1
  3. 运行PCbuild\build.bat -p amd64 -v,编译完成后_ctypes.pyd将出现在PCbuild\amd64\目录。

5. 生产环境部署 checklist:让3.13真正落地的12个动作

5.1 CI/CD流水线适配清单(GitHub Actions示例)

.github/workflows/python.yml中,必须更新以下配置:

jobs: test: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Setup Python 3.13 uses: actions/setup-python@v4 with: python-version: '3.13.0-rc.2' # 必须指定rc版本,不能写3.13 architecture: 'x64' # 显式声明架构,避免ARM64自动降级 - name: Install dependencies run: | python -m pip install --upgrade pip==24.0.1 python -m pip install -r requirements.txt env: PIP_INDEX_URL: https://my-private-pypi/simple/ PIP_TRUSTED_HOST: my-private-pypi - name: Run tests run: python -m pytest tests/ env: PYTHONUTF8: 1 # 强制UTF-8编码,避免Windows路径解析错误

5.2 Docker容器化部署要点(Windows Server 2022)

Docker Desktop for Windows 4.28+才支持3.13的--platform=windows/amd64镜像。基础镜像必须用:

FROM mcr.microsoft.com/windows/servercore:ltsc2022 # 安装3.13的PowerShell脚本 COPY install-python313.ps1 . RUN powershell -ExecutionPolicy Bypass -File install-python313.ps1 # 关键:设置容器内时区,3.13的datetime模块对时区敏感度提升 ENV TZ=Asia/Shanghai RUN powershell -Command "Set-TimeZone -Id 'China Standard Time'"

install-python313.ps1内容需包含:

  • 下载官方nightly build并校验SHA256
  • 使用Start-Process msiexec -ArgumentList "/i", "python-3.13.0rc2-amd64.msi", "/quiet", "ADDLOCAL=ALL", "TARGETDIR=C:\Python313"静默安装
  • 手动修复pip(同前述get-pip.py方案)

5.3 监控与告警配置(Prometheus + Grafana)

3.13新增sys.monitoring模块,可实时采集GIL状态、内存分配事件。在生产服务中集成:

import sys import time # 启用监控事件 sys.monitoring.set_event_callback( sys.monitoring.events.GIL_CONTENDED, lambda *args: print(f"GIL contended at {time.time()}") ) # 每秒上报指标到Prometheus from prometheus_client import Gauge g_gil_contended = Gauge('python_gil_contended_total', 'GIL contention events') # 在回调函数中:g_gil_contended.inc()

Grafana看板需新增面板:

  • GIL争用率(rate(python_gil_contended_total[5m])
  • 内存分配峰值(process_resident_memory_bytes{job="python-app"}
  • sys.monitoring事件丢失率(python_monitoring_events_lost_total

最后分享一个血泪教训:我们曾在线上环境启用sys.monitoring后,QPS下降12%,原因是事件回调函数触发了额外的GC周期。解决方案是将回调函数改为异步队列推送,避免阻塞主线程。

6. 不该踩的坑:那些被忽略却致命的细节

6.1 PATH顺序决定一切:为什么python -c "import sys;print(sys.executable)"指向错误路径?

Windows的PATH环境变量是顺序查找的。若你电脑上同时存在Python 3.12(C:\Python312)和3.13(C:\Python313),且C:\Python312\Scripts在PATH中排在C:\Python313\Scripts之前,那么执行pip install实际调用的是3.12的pip,但安装到3.13的site-packages目录,造成版本混乱。验证方法:

where python where pip

若输出路径不一致,必须手动调整PATH顺序:

  1. 系统属性 → 高级 → 环境变量
  2. 编辑用户PATH,将C:\Python313C:\Python313\Scripts移到最前面
  3. 重启所有cmd窗口(PATH不会热更新)

6.2 Windows Defender的“智能防护”正在悄悄杀死你的venv

3.13的venv模块创建环境时,会在Scripts\Activate.ps1中写入大量PowerShell命令。Windows Defender的ASR(Attack Surface Reduction)规则“阻止Office应用程序创建PowerShell脚本”会误判此文件为恶意,将其删除。现象是:激活venv后pip命令不存在。解决方案:

  • 临时禁用ASR:Set-MpPreference -AttackSurfaceReductionRules_Ids 75668c1f-7ef6-4602-895f-d60c0345cbe0 -AttackSurfaceReductionRules_Actions 0
  • 长期方案:将venv目录添加到Defender排除列表:
    Add-MpPreference -ExclusionPath "C:\myproject\venv"

6.3 PyCharm调试器的断点失效之谜

PyCharm 2024.3.2在调试3.13代码时,断点常失效。根源是3.13的linecache模块优化了源码读取逻辑,而PyCharm的调试协议未适配新接口。临时解决:在PyCharm设置中,进入Build, Execution, Deployment → Console → Python Console,勾选Use IPython if available,并在Starting script中添加:

import linecache linecache.check_cache = lambda: None # 禁用缓存检查

但这会影响调试性能。终极方案是等待JetBrains发布PyCharm 2025.1,其已声明完全支持3.13调试协议。

6.4 Office 2024插件开发者的特殊警告

若你用Python开发Office COM插件(如Excel UDF),3.13的comtypes库存在严重兼容问题:comtypes.client.CreateObject("Excel.Application")会触发OSError: [WinError -2147221008] CoInitialize has not been called。这是因为3.13的线程初始化逻辑变更,要求显式调用pythoncom.CoInitialize()。修复代码:

import pythoncom import comtypes.client pythoncom.CoInitialize() # 必须在CreateObject前调用 excel = comtypes.client.CreateObject("Excel.Application")

且此调用必须在主线程执行,子线程中需用pythoncom.CoInitializeEx(0)

7. 未来半年必须关注的3.13生态演进节点

Python 3.13的真正成熟不在安装环节,而在生态适配进度。以下是2025年Q3前必须盯紧的关键节点:

  • 2025年6月15日:PyPI官方宣布pip 24.1支持--no-deps参数的智能依赖推导,解决当前--force-reinstall导致的依赖树断裂问题。
  • 2025年7月20日:Anaconda发布anaconda3-2025.07,首次包含3.13预编译环境,解决conda install numpy在3.13下的ABI不匹配问题。
  • 2025年8月31日:Microsoft Visual Studio 2022 v17.10发布,其Python工作负载将原生支持3.13调试器,终结PyCharm调试失效问题。
  • 2025年9月1日:Docker Hub启用python:3.13-slim官方镜像,基于Debian 12.6,体积比当前nightly镜像小42%。

我个人在实际部署中发现:不要等所有生态就绪再行动。我们已在生产环境用3.13rc2跑了三个月,核心策略是“灰度推进”——先用3.13跑CI/CD构建节点(无状态),再逐步迁移数据处理微服务(有状态),最后才是Web应用。每次迁移前,用pipdeptree --reverse --packages <package>检查依赖树,确保上游包已发布3.13兼容版。这个过程没有捷径,但每一步都值得。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 1:19:54

信息系统工程的项目管理

信息系统工程的项目管理&#xff0c;重点还是项目管理&#xff0c;但是专注的领域是信息系统。信息系统领域如何管理项目&#xff0c;项目经理是关键&#xff01;根据PMI的的观点&#xff0c;项目经理应该重点关注三个关键技能&#xff1a;1 技术项目管理。与项目、项目集和项目…

作者头像 李华
网站建设 2026/9/20 1:19:45

HFSM 与动画状态机解耦:通过事件总线同步行为与动作表现

HFSM 与动画状态机解耦&#xff1a;通过事件总线同步行为与动作表现在游戏客户端角色控制器的开发中&#xff0c;最普遍的架构恶疾是将 AI 决策状态机&#xff08;HFSM/BT&#xff09;与动画状态机&#xff08;如 Unity Animator / Unreal AnimGraph&#xff09;深度强绑定。例…

作者头像 李华
网站建设 2026/9/20 1:18:03

数值优化(Numerical Optimization)学习系列-01-线搜索方法(LineSearch)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 1:15:03

生产与运作管理试题库:制造业信息化系统的算法基石

简介&#xff1a;面向高校经管类专业学生的《生产与运作管理》复习备考资料&#xff0c;内置试题库与试卷A答案解析&#xff0c;覆盖JIT生产、ISO9000、敏捷制造、精益生产、MRP、ABC控制法、全面质量管理等核心模块&#xff0c;并配套选择题、判断题、简述题、计算题和论述题&…

作者头像 李华
网站建设 2026/9/20 1:10:53

中国象棋PDF解析:从扫描棋谱到可编程知识图谱

简介&#xff1a;本资源是一份面向中国象棋初学者与进阶爱好者的系统性学习指南&#xff0c;聚焦象棋核心策略、棋子特性与实战口诀的深度梳理。内容涵盖开局要领&#xff08;如‘当头炮&#xff0c;马来招’&#xff09;、棋子走法与价值评估&#xff08;‘马行日&#xff0c;…

作者头像 李华
网站建设 2026/9/20 1:09:24

Spark RDD 血统与容错:Lineage、Checkpoint、Cache/Persist 的选择与性能权衡

一、Spark RDD 基础概念Spark RDD (Resilient Distributed Dataset) 是 Spark 的核心抽象&#xff0c;代表一个不可变的、分区的、可并行操作的数据集合。RDD 具有容错特性&#xff0c;能够通过血统关系重新计算丢失的数据分区。1.1 RDD 的定义与特性RDD (Resilient Distribute…

作者头像 李华