繁体   English   中英

使用pySpark将DataFrame写入mysql表

[英]Write DataFrame to mysql table using pySpark

我正在尝试将记录插入到MySql表中。 该表包含idname作为列。

我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM