【问题标题】:Load data from the MySql db using pyspark in python 3在 python 3 中使用 pyspark 从 MySql db 加载数据
【发布时间】:2018-01-02 00:05:24
【问题描述】:

我正在尝试使用 pyspark 从 MySQL 数据库加载表。我写了以下代码:

from  pyspark.sql import SparkSession
from pyspark.sql import SQLContext

hostname='localhost'
jdbcPort=3306
dbname='db'
username='user'
password='password'

#jdbc_url = "jdbc:mysql://{0}:{1}/{2}".format(hostname, jdbcPort, dbname)
url="jdbc:mysql://"
# For SQLServer, pass in the "driver" option
# driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
# Add "driver" : driverClass
connectionProperties = {
  "user" : username,
  "password" : password
}
pushdown_query = "select * from table LIMIT 10;"
df = spark.read.jdbc(url=url, dbtable=pushdown_query, properties=connectionProperties)
#sqlContext=SQLContext(sc)
#df=sqlContext.read.jdbc(url=url, table=pushdown_query, properties=properties)
display(df)

但我收到以下错误:

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-21-70890f1cf807> in <module>()
     15 }
     16 pushdown_query = "select * from table LIMIT 10;"
---> 17 df = spark.read.jdbc(url=url, dbtable=pushdown_query, properties=connectionProperties)
     18 #sqlContext=SQLContext(sc)
     19 #df=sqlContext.read.jdbc(url=url, table=pushdown_query, properties=properties)

AttributeError: 'property' object has no attribute 'jdbc'

谁能帮我解决这个错误?

谢谢

【问题讨论】:

  • 你得到一个异常,因为你没有初始化SparkSession。查询也不正确。
  • spark = SparkSession.builder.config(conf=SparkConf()).getOrCreate()。稍后你必须fix the query
  • 好吧,请阅读如何创建minimal reproducible example,并按照步骤操作。

标签: mysql python-3.x pyspark apache-spark-sql


【解决方案1】:

请尝试以下代码从 mysql 读取数据。

hostname = ""
dbname = ""
jdbcPort = 
jdbc_url = "jdbc:mysql://{0}:{1}/{2}".format(hostname, jdbcPort, dbname)

connectionProperties = {
  "user" : username,
  "password" : password
}

query = "select * from table_name"
df = spark.read.jdbc(url=jdbc_url, dbtable=query, properties=connectionProperties)
df.show()

如果有帮助,请告诉我。

【讨论】:

  • 我写了同样的代码。顺便说一句,得到同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 2012-01-04
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多