【问题标题】:Pyspark - configure Amazon Redshift JDBC jarPyspark - 配置 Amazon Redshift JDBC jar
【发布时间】:2017-01-17 16:50:59
【问题描述】:

我正在尝试使用 spark-redshift databricks 包,但无法使 Redshift jdbc 驱动程序正常工作。我已经从here 下载了最新版本并保存到 s3 存储桶中。

这就是我启动spark-shell的方式

MASTER=yarn-client IPYTHON=1 PYSPARK_PYTHON=/usr/bin/python27 /usr/lib/spark/bin/pyspark 
--packages com.databricks:spark-avro_2.10:2.0.1,com.databricks:spark-redshift_2.10:1.1.0 
--jars 's3://pathto/RedshiftJDBC42-1.2.1.1001.jar'      

我正在尝试按照 databricks 自述文件从 Redshift 中读取数据

df = sql_context.read \
.format("com.databricks.spark.redshift") \
.option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass") \
.option("dbtable", "my_table") \
.option("tempdir", "s3n://path/for/temp/data") \
.load()

但我得到一个配置错误:

 Py4JJavaError: An error occurred while calling o46.load.
 : java.lang.ClassNotFoundException: Could not load an Amazon Redshift JDBC driver; see the README for instructions on downloading and configuring the official Amazon driver.

jar 文件似乎已被读取,因此不确定如何以不同方式指定它。

【问题讨论】:

    标签: python apache-spark jdbc jar amazon-redshift


    【解决方案1】:

    当我意识到我做错了什么时才更新这个。我在 s3 存储桶中引用了 jar 文件,但这需要在集群本地可用。

    aws s3 cp s3://pathto/RedshiftJDBC42-1.2.1.1001.jar /tmp/
    

    【讨论】:

    • 我也在尝试做同样的事情,但出现依赖未解决错误,您是否安装了任何软件包或进行了任何配置更改以运行。
    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    • 2019-10-01
    • 1970-01-01
    相关资源
    最近更新 更多