我正在使用kafka从远程mysql数据库读取数据,并将其传递到Pyspark streaming以应用情感分析,然后用该值更新mysql数据库中的列。这是最好的情况,还是有比这更有效的架构?
发布于 2019-11-21 00:04:50
你的问题有点含糊,但我要说的是。
可以,您可以使用df.write.jdbc()将Spark DataFrame写入任何jdbc数据库。这是https://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=jdbc#pyspark.sql.DataFrameWriter.jdbc文档
您的代码将如下所示
url = "jdbc:mysql://localhost/foobar"
properties = {
"user": "foo",
"password": "bar"
}
df.write.jdbc(url=url, table="tablename", mode="overwrite", properties=properties)这为您提供了四种写入模式:
追加:将该DataFrame的内容追加到已有的数据上。
覆盖:覆盖已有数据。
忽略:如果数据已经存在,则静默忽略此操作。
error或errorifexists (默认情况):如果数据已经存在,则抛出异常。
或者,既然您正在使用Spark Streaming,为什么不将您的dataframe changelog生成为一个新的主题,并使用Kafka Connect之类的工具将该表同步到您的mysql数据库。这使得您可以更好地控制如何向表中插入/更新/更新数据。
https://stackoverflow.com/questions/58957315
复制相似问题