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

Spark读取OpenTargets Parquet文件时触发Py4JJavaError问题排查

问题排查与解决方案

针对你使用spark.read.parquet()读取ClinVar(EVA)数据集时出现的Py4JJavaError,以下是常见原因及解决办法:

1. 检查文件完整性与有效性

  • 查看/Users/xxxxx/Desktop/sourceId=eva目录下的文件,确认是否存在带.parquet后缀的分片文件,且文件大小符合预期(若下载中断,文件会远小于正常体积)。
  • 用Parquet工具验证单个分片:
    parquet-tools head /Users/xxxxx/Desktop/sourceId=eva/[具体parquet文件名]
    
    若工具报错,说明文件损坏,需重新下载。

2. 确认读取路径逻辑

OpenTargets的证据数据集采用分区式Parquet存储,sourceId=eva是分区目录而非单个Parquet文件:

  • Spark支持直接读取分区目录,但前提是目录下所有文件都是有效的Parquet分片。若目录内存在非Parquet文件(如下载生成的临时文件、网页缓存),会触发报错。

3. 修正下载方式

用wget下载时,需注意数据集的分布式存储特性:

  • 缺少递归参数会导致仅下载目录索引而非实际分片文件,需添加-r(递归)和-np(不遍历父目录):
    wget -r -np [OpenTargets的EVA分区数据集URL]
    
  • 若曾中断下载,添加-c参数断点续传,避免文件不完整:
    wget -c -r -np [OpenTargets的EVA分区数据集URL]
    

4. 验证Spark读取代码

确保代码指向正确的分区目录:

# 正确读取分区目录的写法
df = spark.read.parquet("/Users/xxxxx/Desktop/sourceId=eva/")

Spark会自动遍历目录下的所有Parquet分片并合并为DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:39:52