【发布时间】:2020-11-16 13:10:37
【问题描述】:
我们使用 pyspark 提交选项,使用 hdfs 和纱线集群模式放置的 jar 文件,如下所示。
########################
source *****.sh # setting environment variables
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
/bin/pyspark --master yarn --deploy-mode client --driver-memory *g --executor-memory *g --executor-cores * --num-executors * --conf spark.yarn.archive=hdfs://node-master:/***/spark-libs.jar --jars hdfs://node-master:/***/spark-sftp_2.11-1.1.5.jar
############################ 火花代码################# ##########
conf = spark.sparkContext._conf.setAll(
[('spark.app.name', '***'),
("spark.sql.execution.arrow.enabled", "true"),
("spark.hadoop.fs.sftp.impl", "org.apache.hadoop.fs.sftp.SFTPFileSystem")])
spark = SparkSession \
.builder \
.config(conf=conf) \
.getOrCreate()
sc = spark.sparkContext
SFTP_HOST= 'host'
SFTP_USER = 'user'
SFTP_PEM = 'passkey'
file_path ='full_path'
spark.read\
.format("com.springml.spark.sftp")\
.option("host", SFTP_HOST)\
.option("username", SFTP_USER)\
.option("pem", SFTP_PEM)\
.option("fileType", "csv")\
.option("multiLine", "true")\
.option("header", "true")\
.load(file_path)
#################################错误############ #################
Py4JJavaError:调用 o52.load 时出错。 : java.lang.NoClassDefFoundError: com/springml/sftp/client/SFTPClient
问题- 如何解决此问题,我们正在跳过任何内容。
- 将jar文件用于spark-sftp是否正确。我不能使用 --package 因为它会安装依赖文件,我们正在避免它。
我们还尝试了集群模式并按照以下链接进行操作,但仍在同一页面中。
https://github.com/springml/spark-sftp/blob/master/README.md Use spark-sftp jar in pyspark
【问题讨论】: