AWS emr 驱动程序 jar

柯尼希李尔

我正在尝试通过以下方式在 pyspark 笔记本上的 AWS EMR 5.29 中使用外部驱动程序:

#%%configure -f
{ "conf": {"spark.jars":"s3://bucket/spark-redshift_2.10-2.0.1.jar,"
                        "s3://bucket/minimal-json-0.9.5.jar,"
                        "s3://bucket/spark-avro_2.11-3.0.0.jar,"
                        "s3://bucket/RedshiftJDBC4-no-awssdk-1.2.41.1065.jar"}}

根据https://blog.benthem.io/2020/04/21/connect-aws-emr-to-spark.html

然而,当尝试

from pyspark.sql import SQLContext

sc = spark # existing SparkContext
sql_context = SQLContext(sc)

df = sql_context.read.format("com.databricks.spark.redshift")\
                                    .option("url", jdbcUrl)\
                                    .option("query","select * from test")\
                                    .option("tempdir", "s3://")\
                                    .load()

我得到:java.lang.ClassNotFoundException:找不到数据源:com.databricks.spark.redshift。

我该如何解决这个问题?我可以确认 emr 角色可以访问存储桶,因为我可以使用 spark 处理同一个存储桶上的 CSV 文件。我还可以确认所有列出的 jar 文件都在存储桶中。

柯尼希李尔

实际上解决这个问题的方法是通过 SSH 进入主节点,然后查看 ivy 日志:

/mnt/var/log/livy/livy-livy-server.out

和下载的jar文件在

/var/lib/livy/.ivy2/jars/

根据我发现的内容,我将代码更改为:

%%configure -f
{
    "conf": {
        "spark.jars" : "s3://bucket/RedshiftJDBC4-no-awssdk-1.2.41.1065.jar",
        "spark.jars.packages": "com.databricks:spark-redshift_2.10:2.0.0,org.apache.spark:spark-avro_2.11:2.4.0,com.eclipsesource.minimal-json:minimal-json:0.9.4"
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用AWS EMR实例通过Spark访问JDBC驱动程序

将JDBC jar驱动程序添加到AWS Elastic Beanstalk作业的类路径中

AWS EMR Spark:错误:无法从JAR加载主类

在AWS EMR主节点上覆盖默认的AWS-SDK jar

如何在AWS EMR上使用sbt程序集在Scala中创建单个jar?遇到重复数据删除:在以下位置发现不同的文件内容:错误

项目JAR无法访问德比驱动程序

加载JDBC驱动程序,而不从外部JAR名

从JAR运行时“找不到合适的驱动程序”

AWS EMR Spark集群-使用Scala fat JAR的步骤,找不到MainClass

使用CLI将逗号分隔的参数传递给AWS EMR中的Spark jar

AWS EMR Spark不会使用自定义Jar加载MainClass

在EMR上安装JDBC驱动程序以供Sqoop使用的正确方法是什么?

在由Maven驱动的简单演示应用程序的JAR中包含Postgres的JDBC驱动程序

如何在Amazon AWS上加载ena驱动程序?

MongoDB PHP驱动程序无法在Ubuntu AWS上运行

通过 AWS [EMR] 提交 Spark 应用程序

AWS EMR-IntelliJ远程调试Spark应用程序

合并AWS EMR输出

尽管添加了驱动程序的JAR文件,JDBC程序中的ClassNotFoundException

如何将Aeron驱动程序JAR嵌入Rust程序中并在以后启动它?

如何删除AWS EMR集群?

AWS EMR和Spark 1.0.0

AWS EMR上的ClusterID与JobFlowID

AWS EMR上的Spark UI

从Pyspark EMR访问AWS RDS

Spark-将JDBC驱动程序JAR添加到Google Dataproc

为什么从生成的 jar 中找不到 jdbc 驱动程序?

Oracle驱动程序可能不在使用任务“ gradle jar”的类路径中

MongoDB Java驱动程序:找不到包含org.bson.types.ObjectId的jar