相关疑难解决方法(0)

使用pyspark连接到PostgreSQL

我正在尝试使用pyspark连接到数据库,我使用以下代码:

sqlctx = SQLContext(sc)
df = sqlctx.load(
    url = "jdbc:postgresql://[hostname]/[database]",
    dbtable = "(SELECT * FROM talent LIMIT 1000) as blah",
    password = "MichaelJordan",
    user =  "ScottyPippen",
    source = "jdbc",
    driver = "org.postgresql.Driver"
)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在此输入图像描述

知道为什么会这样吗?

编辑:我试图在我的计算机本地运行代码.

postgresql apache-spark pyspark

12
推荐指数
5
解决办法
2万
查看次数

Apache Spark:JDBC连接无法正常工作

我之前也问过这个问题,但没有得到任何答案(无法在pyspark shell中使用jdbc连接到postgres).

我已经在我的本地窗口上成功安装了Spark 1.3.0并运行了示例程序以使用pyspark shell进行测试.

现在,我想对存储在Postgresql中的数据运行Mllib的Correlations,但是我无法连接到postgresql.

我已成功通过运行在类路径中添加了所需的jar(测试此jar)

pyspark --jars "C:\path\to\jar\postgresql-9.2-1002.jdbc3.jar"
Run Code Online (Sandbox Code Playgroud)

我可以看到jar已成功添加到环境UI中.

当我在pyspark shell中运行以下代码时 -

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.load(source="jdbc",url="jdbc:postgresql://[host]/[dbname]", dbtable="[schema.table]")  
Run Code Online (Sandbox Code Playgroud)

我得到这个错误 -

>>> df = sqlContext.load(source="jdbc",url="jdbc:postgresql://[host]/[dbname]", dbtable="[schema.table]")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ACERNEW3\Desktop\Spark\spark-1.3.0-bin-hadoop2.4\python\pyspark\sql\context.py", line 482, in load
    df = self._ssql_ctx.load(source, joptions)
  File "C:\Users\ACERNEW3\Desktop\Spark\spark-1.3.0-bin-hadoop2.4\python\lib\py4j-0.8.2.1-src.zip\py4j\java_gateway.py", line 538, in __call__
  File "C:\Users\ACERNEW3\Desktop\Spark\spark-1.3.0-bin-hadoop2.4\python\lib\py4j-0.8.2.1-src.zip\py4j\protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o20.load.
: java.sql.SQLException: No suitable driver found …
Run Code Online (Sandbox Code Playgroud)

postgresql jdbc apache-spark apache-spark-sql

10
推荐指数
2
解决办法
1万
查看次数

从Spark/pyspark连接到PostgreSQL

我已经在Windows机器上安装了Spark,并希望通过Spyder使用它.经过一些故障排除后,基础知识似乎有效:

import os

os.environ["SPARK_HOME"] = "D:\Analytics\Spark\spark-1.4.0-bin-hadoop2.6"

from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext

spark_config = SparkConf().setMaster("local[8]")
sc = SparkContext(conf=spark_config) 
sqlContext = SQLContext(sc)

textFile = sc.textFile("D:\\Analytics\\Spark\\spark-1.4.0-bin-hadoop2.6\\README.md")
textFile.count()
textFile.filter(lambda line: "Spark" in line).count()

sc.stop()
Run Code Online (Sandbox Code Playgroud)

这按预期运行.我现在想要连接到在同一服务器上运行的Postgres9.3数据库.我从这里下载JDBC驱动程序在这里,并把它放在文件夹d:\分析\星火\ spark_jars.然后我创建了一个包含以下行的新文件D:\ Analytics\Spark\spark-1.4.0-bin-hadoop2.6\conf\spark-defaults.conf:

spark.driver.extraClassPath        'D:\\Analytics\\Spark\\spark_jars\\postgresql-9.3-1103.jdbc41.jar'
Run Code Online (Sandbox Code Playgroud)

我运行了以下代码来测试连接

import os

os.environ["SPARK_HOME"] = "D:\Analytics\Spark\spark-1.4.0-bin-hadoop2.6"

from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext

spark_config = SparkConf().setMaster("local[8]")
sc = SparkContext(conf=spark_config) 
sqlContext = SQLContext(sc)

df = (sqlContext
    .load(source="jdbc",
          url="jdbc:postgresql://[hostname]/[database]?user=[username]&password=[password]",
          dbtable="pubs")
 )
sc.stop()
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Py4JJavaError: An error occurred while calling …
Run Code Online (Sandbox Code Playgroud)

postgresql jar jdbc apache-spark pyspark

6
推荐指数
1
解决办法
6414
查看次数

PySpark没有找到适合的驱动程序jdbc:mysql:// dbhost

我正在尝试将数据帧写入mysql表。No suitable driver found for jdbc:mysql://dbhost当我尝试写作时,我得到了。

作为预处理的一部分,我从同一数据库中的其他表中读取数据,这样做没有问题。我可以进行完整运行并将行保存到拼花文件中,因此绝对可以从mysql DB中读取。

我正在使用以下方法提交:

spark-submit --conf spark.executor.extraClassPath=/home/user/Downloads/mysql-connector-java-5.1.35-bin.jar --driver-class-path /home/user/Downloads/mysql-connector-java-5.1.35-bin.jar --jars /home/user/Downloads/mysql-connector-java-5.1.35-bin.jar main.py

我在写:

df.write.jdbc(url="jdbc:mysql://dbhost/dbname", table="tablename", mode="append", properties={"user":"dbuser", "password": "s3cret"})

apache-spark apache-spark-sql pyspark

5
推荐指数
1
解决办法
5190
查看次数

标签 统计

apache-spark ×4

postgresql ×3

pyspark ×3

apache-spark-sql ×2

jdbc ×2

jar ×1