【问题标题】:Getting error in spark-sftp jar in pyspark cluster yarn submit在 pyspark 集群纱线提交中的 spark-sftp jar 中出现错误
【发布时间】: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

问题
  1. 如何解决此问题,我们正在跳过任何内容。
  2. 将jar文件用于spark-sftp是否正确。我不能使用 --package 因为它会安装依赖文件,我们正在避免它。

我们还尝试了集群模式并按照以下链接进行操作,但仍在同一页面中。

https://github.com/springml/spark-sftp/blob/master/README.md Use spark-sftp jar in pyspark

【问题讨论】:

    标签: scala hadoop pyspark


    【解决方案1】:

    spark-sftp_2.11-1.1.5.jar 不是 uber/fat jar,这意味着它在构建工件时不包含依赖包。您应该将缺少的依赖包添加到类路径中才能正常工作。

    在此处查看编译依赖项:

    https://mvnrepository.com/artifact/com.springml/spark-sftp_2.11/1.1.5

    或者,如果有兴趣,您也可以查看https://github.com/arcizon/spark-filetransfer,这是我开发的,以克服我在spark-sftp 包中遇到的几个不同问题,例如缺少对2.12 的支持以及对fileType 的DataFrame API 选项的限制。

    【讨论】:

      猜你喜欢
      • 2016-08-23
      • 2021-08-18
      • 2021-12-23
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多