【发布时间】:2021-02-27 01:26:18
【问题描述】:
我正在尝试通过以下方式在 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 文件都在存储桶中。
【问题讨论】:
标签: amazon-web-services apache-spark pyspark amazon-emr