需求:spark
可以直接使用 textFile
读取 HDFS
,但是不能判断 hdfs
文件是否存在,不过 pyspark
可以调用 java
程序,因此可以调用 FileSystem
来实现:
# coding=utf-8
from pyspark import SparkContext
sc = SparkContext(appName="check_hdfs_exists")
jvm = sc._jvm
log4jLogger = jvm.org.apache.log4j
logger = log4jLogger.LogManager.getLogger(__name__)
config = jvm.org.apache.hadoop.conf.Configuration()
file_system = jvm.org.apache.hadoop.fs.File.System.get(config)
path = jvm.org.apache.hadoop.fs.Path("hdfs://hacluster/xxxxx")
path_is_exists = file_system.exists(path)