[英]Write DataFrame to mysql table using pySpark
我正在尝试将记录插入到MySql
表中。 该表包含id
和name
作为列。
我在pyspark
shell 中的操作如下所示。
name = 'tester_1'
id = '103'
import pandas as pd
l = [id,name]
df = pd.DataFrame([l])
df.write.format('jdbc').options(
url='jdbc:mysql://localhost/database_name',
driver='com.mysql.jdbc.Driver',
dbtable='DestinationTableName',
user='your_user_name',
password='your_password').mode('append').save()
我收到以下属性错误
AttributeError: 'DataFrame' object has no attribute 'write'
我究竟做错了什么? 将记录从pySpark
插入MySql
表的正确方法是什么
使用Spark DataFrame而不是pandas',因为
.write
仅在Spark Dataframe上可用
所以最终的代码可能是
data =['103', 'tester_1']
df = sc.parallelize(data).toDF(['id', 'name'])
df.write.format('jdbc').options(
url='jdbc:mysql://localhost/database_name',
driver='com.mysql.jdbc.Driver',
dbtable='DestinationTableName',
user='your_user_name',
password='your_password').mode('append').save()
只是为了添加@mrsrinivas 的答案。
确保您的 spark session 中有 sql 连接器的 jar 位置。此代码有助于:
spark = SparkSession\
.builder\
.config("spark.jars", "/Users/coder/Downloads/mysql-connector-java-8.0.22.jar")\
.master("local[*]")\
.appName("pivot and unpivot")\
.getOrCreate()
否则会抛出错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.