我问了一下,使用建议是这样的:
1、读取建议tispark直接从tikv或者tiflash读;
2、写入,batch比较大的话,建议通过jdbc方式,拆batch写入
val customer = spark.sql(“select * from customer limit 100000”)
// 为了平衡各节点以及提高并发数,你可以将数据源重新分区
val df = customer.repartition(32)
df.write
.mode(saveMode = “append”)
.format(“jdbc”)
.option(“driver”, “com.mysql.jdbc.Driver”)
// 替换为你的主机名和端口地址,并确保开启了重写批处理
.option(“url”, “jdbc:mysql://127.0.0.1:4000/test?rewriteBatchedStatements=true”)
.option(“useSSL”, “false”)
// 作为测试,建议设置为 150
.option(JDBCOptions.JDBC_BATCH_INSERT_SIZE, 150)
.option(“dbtable”, s"cust_test_select") // 数据库名和表名
.option(“isolationLevel”, “NONE”) // 如果需要写入较大 Dataframe,推荐将 isolationLevel 设置为 NONE
.option(“user”, “root”) // TiDB 用户名
.save()