>rds移动数据

tvokkenx  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(451)

我有一个spark项目,aws glue实现在本地运行。
我监听一个kinesis流,所以当数据以json格式到达时,我可以正确地存储到s3。我想存储在awsrds中,而不是存储在s3中。
我试过使用:

dataFrame.write
          .format("jdbc")
          .option("url","jdbc:mysql://aurora.cluster.region.rds.amazonaws.com:3306/database")
          .option("user","user")
          .option("password","password")
          .option("dbtable","test-table")
          .option("driver","com.mysql.jdbc.Driver")
          .save()

spark项目使用aws glue job从kinesis流获取数据。
我想把数据添加到极光数据库。
它错误地失败了

Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
 server version for the right syntax to use near '-glue-table (`label2` TEXT , `customerid` TEXT , `sales` TEXT , `name` TEXT )' a
t line 1

这是我正在使用的测试Dataframe, dataFrame.show() :

+------+----------+-----+--------------------+
|label2|customerid|sales|                name|
+------+----------+-----+--------------------+
| test6|      test| test|streamingtesttest...|
+------+----------+-----+--------------------+
chhqkbe1

chhqkbe11#

使用spark dynamicframe而不是dataframe并使用gluecontext接收器发布到aurora:
所以最后的代码可能是:

lazy val mysqlJsonOption = jsonOptions(MYSQL_AURORA_URI)

//Write to Aurora
val dynamicFrame = DynamicFrame(joined, glueContext)
glueContext.getSink("mysql", mysqlJsonOption).writeDynamicFrame(dynamicFrame)

相关问题