Pyspark:无法从 SparkFiles 读取镶木地板文件

Posted

技术标签:

【中文标题】Pyspark:无法从 SparkFiles 读取镶木地板文件【英文标题】:Pyspark: Unable to read a parquet file from SparkFiles 【发布时间】:2021-11-10 16:41:54 【问题描述】:

使用 addFile 将多个文件添加到 `park 并尝试使用读取 parquet 文件后

parquet_dir = "/a/b/c.parquet"
spark.sparkContext.addFile(parquet_dir)

parquet_path = SparkFiles.get("c.parquet")
spark.read.parquet(f"file://parquet_path")

我们遇到一个 java 错误,它在 csv 文件上显示 java.nio.file.NoSuchFileException

answer = 'xro770',gateway_client = ,target_id = 'o767',name = 'parquet'

py4j.protocol.Py4JJavaError:调用 o767.parquet 时出错。 E:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1.0 中的任务 0 失败 1 次,最近失败:阶段 1.0 中丢失任务 0.0(TID 1)(10.196.190.115 执行程序驱动程序):java。 nio.file.NoSuchFileException: /Users/foorx/Developer/myproject/project-files/51e05c208b62b433293ef408fd1a3820.csv

什么可能导致 pyspark 在应该读取 parquet 路径时读取 csv 路径?

谢谢!

【问题讨论】:

【参考方案1】:

原来这个bug是由于删除了另一个添加到spark的本地文件造成的。驱动程序仍会尝试引用已删除的本地文件并在其他地方创建运行时问题。

【讨论】:

以上是关于Pyspark:无法从 SparkFiles 读取镶木地板文件的主要内容,如果未能解决你的问题,请参考以下文章

无法使用本地 PySpark 从 S3 读取 json 文件

PySpark 无法从 hdfs 读取 csv:HiveExternalCatalog 错误

无法从 S3 读取 csv 到 AWS 上 EC2 实例上的 pyspark 数据帧

无法在 Databricks 中使用 pyspark 读取 json 文件

在 pyspark 中无法读取 avro 格式问题

如何从 BigQuery 读取分区表到 Spark 数据帧(在 PySpark 中)