PySpark判断Hdfs文件路径是否存在
背景
从ScalaSpark代码转PySpark代码,同时实现连续读多个文件,避免因某些路径不存在导致程序终止。
在Scala的Spark中可以直接导下面两个模块的包
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs._
然后调用方法就可以实现对hdfs的文件判断了
val fs = FileSystem.get(conf)
fs.exists(new Path(pathStr))
但PySpark并不能这么实现(我太菜了
)
查略网上方法
(第一种)[https://www.cnblogs.com/midworld/p/15734257.html]
Pass
(第二种)[https://deepinout.com/pyspark/pyspark-questions/113_pyspark_pyspark_how_to_check_if_a_file_exists_in_hdfs.html]
看着还不错,但我的生产环境导不了这个类,可能pySpark是做了更改的,结果就是不行,Pass/(ㄒoㄒ)/~~
总结
在查略了各种方法都没实现后,突然想到了try-catch最基础的办法,然后我看了下Scala版的Spark源代码,发现也有用到try-catch来实现的
随后开启了不常规操作
for path in path_list:
try:
print(path,spark.read.parquet(path).count())
except:
print(path + ":路径不存在")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界